Node.js ialah sumber terbuka, persekitaran masa jalan JavaScript merentas platform yang membolehkan pembangunan aplikasi rangkaian yang cekap dan ringan. Dalam proses membangunkan aplikasi rangkaian, kami sering menghadapi situasi di mana pemajuan diperlukan, seperti proksi terbalik, pengimbangan beban, dsb. Artikel ini akan memperkenalkan cara mengkonfigurasi pemajuan dalam Node.js.
1. Proksi terbalik
Proksi terbalik ialah senario aplikasi sisi pelayan biasa Ia adalah teknologi yang mengendalikan permintaan pelanggan dengan memajukan permintaan ke pelayan lain. Sebagai contoh, kami boleh memajukan permintaan pelanggan ke pelayan yang berbeza melalui proksi terbalik untuk mencapai pengimbangan beban. Dalam Node.js, anda boleh menggunakan modul http-proksi untuk melaksanakan proksi terbalik.
Sebelum menggunakan modul http-proxy, anda perlu memasangnya. Anda boleh menggunakan arahan npm untuk memasang:
npm install http-proxy --save
Seterusnya, kita boleh mula menulis kod proksi terbalik. Berikut ialah contoh proksi terbalik yang mudah, yang memajukan permintaan klien ke pelayan localhost:3000 setempat:
const httpProxy = require('http-proxy'); const proxy = httpProxy.createProxyServer({}); require('http').createServer((req, res) => { proxy.web(req, res, { target: 'http://localhost:3000' }); }).listen(80);
Dalam kod di atas, kami mula-mula mencipta contoh http-proxy, dan kemudian Mencipta pelayan menggunakan Node modul http terbina dalam .js dan mendengar pada port 80. Apabila permintaan pelanggan tiba, kami memajukannya ke pelayan localhost:3000 melalui kaedah proxy.web().
Selepas menulis kod proksi terbalik, kita boleh menjalankannya dengan arahan berikut:
node app.js
Jika semuanya baik-baik saja , kita boleh mengakses pelayan proksi terbalik dengan mengakses http://localhost melalui pelayar.
2. Pengimbangan Beban
Pengimbangan beban ialah senario aplikasi pelayan biasa Ia adalah teknologi yang mengedarkan permintaan pelanggan kepada pelayan yang berbeza untuk mengimbangi beban pelayan. Node.js menyediakan pelbagai cara untuk mencapai pengimbangan beban, termasuk menggunakan alat pihak ketiga seperti haproxy dan Nginx, atau anda boleh menulis kod anda sendiri untuk mencapainya.
Strategi pengimbangan beban Round-Robin ialah strategi pengimbangan beban mudah yang mengagihkan permintaan secara sama rata kepada pelayan yang berbeza . Dalam Node.js, anda boleh menggunakan modul kluster yang digabungkan dengan strategi pengimbangan beban Round-Robin untuk mencapai pengimbangan beban.
Berikut ialah kod contoh pengimbangan beban mudah:
const cluster = require('cluster'); const http = require('http'); const numCPUs = require('os').cpus().length; if (cluster.isMaster) { console.log(`主进程 ${process.pid} 正在运行`); // Fork workers. for (let i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', (worker, code, signal) => { console.log(`工作进程 ${worker.process.pid} 已退出`); }); } else { http.createServer((req, res) => { res.writeHead(200); res.end(`工作进程 ${process.pid} 返回 Hello World!`); }).listen(8000); console.log(`工作进程 ${process.pid} 已启动`); }
Dalam kod di atas, kami mula-mula menggunakan modul kluster Semak sama ada proses semasa adalah proses utama. Jika ia adalah proses utama, kami menggunakan kaedah cluster.fork() untuk mencipta berbilang proses pekerja. Setiap proses pekerja akan mendengar pada port 8000 dan mengembalikan rentetan "Hello World!" Jika permintaan tiba, proses utama akan mengedarkannya kepada proses pekerja yang berbeza.
Selepas menulis kod pengimbangan beban, kita boleh menjalankannya dengan arahan berikut:
node app.js
Jika semuanya OK , kami Anda boleh mengakses pelayan pengimbangan beban dengan mengakses http://localhost:8000 melalui pelayar.
Ringkasan
Artikel ini memperkenalkan cara mengkonfigurasi pemajuan dalam Node.js, termasuk proksi terbalik dan pengimbangan beban. Proksi songsang boleh memajukan permintaan pelanggan ke pelayan yang berbeza, dan pengimbangan beban boleh memperuntukkan permintaan pelanggan kepada proses kerja yang berbeza untuk mengoptimumkan prestasi pelayan. Node.js menyediakan banyak modul dan alatan untuk melaksanakan fungsi ini, dan pembangun boleh memilih penyelesaian yang sesuai dengan mereka mengikut keperluan mereka sendiri.
Atas ialah kandungan terperinci pemajuan konfigurasi nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!