Nginx做NodeJS应用负载均衡配置实例

这篇文章主要介绍了Nginx做NodeJS应用负载均衡配置实例,本文直接给出配置实例,需要的朋友可以参考下

负载均衡可以把用户的请求分摊到多个服务器上进行处理,从而实现了对海量用户的访问支持。负载均衡的架构如图所示:

对于复杂的Web应用来说,用Nginx做前端负载均衡是理所当然的事。
下面,我们用Nginx做NodeJS应用的负载均衡。
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服务器,这两个服务器在做同样的工作。在upstream节,配置了两个Node.js服务器。此外,我们还设置了proxy_pass http://sample做HTTP请求代理。

2、构建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、访问Nginx服务器

现在我们可以访问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  
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

一:确定你的系统是UTF编码 [root@Tserver ~]# env|grep LANG LANG=en_US.UTF-8 二:NGINX配置文件里默认编码设置为utf-8 server { listen 80; server_name .inginx.com ; index index.html index.htm index.php; root /usr/local/nginx/html/inginx.com; ch
很多网站需要采用伪静态来访问动态网页。所以像phpcms这样的系统,都提供了一个.htaccess文件,供写伪静态规则。但这个规则是针对Apache的。在nginx服务器上并不起作用。 nginx 可以直接将伪静态规则写在配置文件中,但这个需要有服务器管理权限,普通站长不
在网站建设中需要网页重定向的情况很多:如网页目录结构变动,网页重命名、网页的扩展名改变、网站域名改变等。如果不做重定向,用户的收藏和搜索引 擎数据库中的旧地址只能让访客得到一个404错误信息页面,访问流量白白丧失。不仅如此,之前该页面的一切积
利用nginx泛域名解析配置二级域名和多域名 网站的目录结构为 html ├── bbs └── www html为nginx的安装目录下默认的存放源代码的路径。 bbs为论坛程序源代码路径 www为主页程序源代码路径 把相应程序放入上面的路径通过 http://www.youdomain.com 访问
一:安装nginx nginx在windows下进行完整配置,需要下载windows的nginx,下载完成后,将下载的nginx解压到你要安装配置的路径,假设我这里是D:\nginx-1.11.4\nginx-1.11.4\,打开nginx的文件夹,找到里面的conf目录的nginx.conf,修改以下内容: 打开错误日
一直在Linux平台上部署web服务,但是最近的一个项目,必须要用windows,不得已再次研究了nginx在windows下的表现,因为Apache httpd在Windows下表现其实也不算太好,而我更喜欢nginx。 惊奇地发现nginx在Windows下已经趋于稳定,于是我决定使用nginx作为web