如何配置Nginx做NodeJS负载均衡

2016-08-06 13:32:52 8000

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://www.landui.com; 

      } 

    } 

这里在3000端口和3001端口各有一个Node.js服务器,这两个服务器在做同样的工作。在upstream节,配置了两个Node.js服务器。此外,我们还设置了proxy_pass http://www.landui.com做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 '); 

}).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 '); 

}).listen(3001, "127.0.0.1"); 

  

server1.once('listening', function() { 

 console.log('Server running at http://www.landui.com:3000/'); 

}); 

  

server2.once('listening', function() { 

 console.log('Server running at http://www.landui.com:3001/'); 

}); 

3、访问Nginx服务器

现在我们可以访问http://www.landui.com

可以看到如下的输出:


blob.png

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: