Pengimbangan beban boleh memperuntukkan permintaan pengguna kepada berbilang pelayan untuk diproses, dengan itu mencapai sokongan akses untuk sejumlah besar pengguna. Seni bina pengimbangan beban ditunjukkan dalam rajah:
Untuk aplikasi web yang kompleks, menggunakan nginx untuk pengimbangan beban bahagian hadapan adalah perkara biasa.
Seterusnya, kami menggunakan nginx untuk mengimbangi beban aplikasi nodejs.
1. Konfigurasikan nginx
Ubah suai nginx.conf:
upstream sample { server 127.0.0.1:3000; server 127.0.0.1:3001; keepalive 64; } server { listen 80; .... server_name 127.0.0.1; .... location / { proxy_redirect off; proxy_set_header x-real-ip $remote_addr; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; proxy_set_header x-forwarded-proto $scheme; proxy_set_header host $http_host; proxy_set_header x-nginx-proxy true; proxy_set_header connection ""; proxy_http_version 1.1; proxy_pass http://sample; } }
Terdapat pelayan node.js pada port 3000 dan port 3001. Kedua-dua pelayan ini melakukan perkara yang sama kerja. Dalam bahagian huluan, dua pelayan node.js dikonfigurasikan. Selain itu, kami juga menetapkan proxy_pass sebagai proksi permintaan http.
2. Bina pelayan nodejs
var http = require('http'); var morgan = require('morgan'); var server1 = http.createserver(function (req, res) { console.log("request for: " + req.url + "-- port 3000 "); res.writehead(200, {'content-type': 'text/plain'}); res.end('hello node.js\n'); }).listen(3000, "127.0.0.1"); var server2 = http.createserver(function (req, res) { console.log("request for: " + req.url + "-- port 3001 "); res.writehead(200, {'content-type': 'text/plain'}); res.end('hello node.js\n'); }).listen(3001, "127.0.0.1"); server1.once('listening', function() { console.log('server running at http://127.0.0.1:3000/'); }); server2.once('listening', function() { console.log('server running at http://127.0.0.1:3001/'); });
3 Akses pelayan nginx
Kini kami boleh mengakses
dan anda. boleh lihat ke output berikut:
server running at http://127.0.0.1:3000/ server running at http://127.0.0.1:3001/ request for: /-- port 3001 request for: /favicon.ico-- port 3000 request for: /favicon.ico-- port 3001 request for: /-- port 3000 request for: /favicon.ico-- port 3001 request for: /favicon.ico-- port 3000 request for: /-- port 3001 request for: /favicon.ico-- port 3000 request for: /favicon.ico-- port 3001 request for: /-- port 3000 request for: /favicon.ico-- port 3001 request for: /favicon.ico-- port 3000
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi Nginx untuk pengimbangan beban aplikasi NodeJS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!