Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk mengkonfigurasi Nginx untuk pengimbangan beban aplikasi NodeJS

Bagaimana untuk mengkonfigurasi Nginx untuk pengimbangan beban aplikasi NodeJS

WBOY
WBOYke hadapan
2023-05-25 23:19:041524semak imbas

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:

Bagaimana untuk mengkonfigurasi Nginx untuk pengimbangan beban aplikasi NodeJS

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam