Nginx做NodeJS應(yīng)用負(fù)載均衡配置實例
負(fù)載均衡可以把用戶的請求分?jǐn)偟蕉鄠€服務(wù)器上進(jìn)行處理,從而實現(xiàn)了對海量用戶的訪問支持。負(fù)載均衡的架構(gòu)如圖所示:

對于復(fù)雜的Web應(yīng)用來說,用Nginx做前端負(fù)載均衡是理所當(dāng)然的事。
下面,我們用Nginx做NodeJS應(yīng)用的負(fù)載均衡。
1、配置Nginx
修改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;
}
}
這里在3000端口和3001端口各有一個Node.js服務(wù)器,這兩個服務(wù)器在做同樣的工作。在upstream節(jié),配置了兩個Node.js服務(wù)器。此外,我們還設(shè)置了proxy_pass http://sample做HTTP請求代理。
2、構(gòu)建NodeJS服務(wù)器
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、訪問Nginx服務(wù)器
現(xiàn)在我們可以訪問http://127.0.0.1
可以看到如下的輸出:
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
- nginx 作為反向代理實現(xiàn)負(fù)載均衡的例子
- Nginx負(fù)載均衡的4種方案配置實例
- windows安裝nginx部署步驟圖解(反向代理與負(fù)載均衡)
- Nginx+Windows負(fù)載均衡配置方法
- 詳解Nginx服務(wù)器之負(fù)載均衡策略(6種)
- windows使用nginx實現(xiàn)網(wǎng)站負(fù)載均衡測試實例
- Nginx 安裝筆記(含PHP支持、虛擬主機(jī)、反向代理負(fù)載均衡)
- 在Nginx服務(wù)器中配置針對TCP的負(fù)載均衡的方法
- linux服務(wù)器之LVS、Nginx和HAProxy負(fù)載均衡器對比總結(jié)
- Nginx配置Tcp負(fù)載均衡的方法
相關(guān)文章
詳解nginx 的 default_server 定義及匹配規(guī)則
這篇文章主要介紹了詳解nginx 的 default_server 定義及匹配規(guī)則,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
nginx 配置虛擬主機(jī),實現(xiàn)在一個服務(wù)器可以訪問多個網(wǎng)站的方法
下面小編就為大家分享一篇nginx 配置虛擬主機(jī),實現(xiàn)在一個服務(wù)器可以訪問多個網(wǎng)站的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12
503 service unavailable錯誤解決方案講解
這篇文章主要介紹了503 service unavailable錯誤解決方案講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
nginx隱藏響應(yīng)頭server信息和版本號信息的操作方法
文章介紹了兩種隱藏或修改Nginx響應(yīng)頭中server信息的方法:一種是通過修改配置文件全局段添加`server_tokens off`,另一種是重新編譯Nginx并修改Banner信息,兩種方法分別適用于傳統(tǒng)部署和需要更靈活自定義的情況,需要的朋友可以參考下2025-02-02
Nginx對網(wǎng)段內(nèi)ip的連接數(shù)限流配置詳解
這篇文章主要介紹了Nginx對網(wǎng)段內(nèi)ip的連接數(shù)限流配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
使用google-perftools優(yōu)化nginx在高并發(fā)時的性能的教程(完整版)
如果使用googler開發(fā)的google-perftools優(yōu)化Nginx和MySQL的內(nèi)存管理,性能將會有一定程度的提升。特別是對高并發(fā)下的服務(wù)器,效果更明顯2013-02-02

