NodeJS 애플리케이션의 로드 밸런싱을 위해 Nginx 사용

WBOY
풀어 주다: 2016-08-08 09:30:31
원래의
887명이 탐색했습니다.

"Nginx를 사용하여 NodeJS 애플리케이션의 로드 밸런싱"

저자: chszs, 재인쇄할 때 명시해 주세요. 블로그 홈페이지: http://blog.csdn.net/chszs

로드 밸런싱은 처리를 위해 사용자 요청을 여러 서버에 할당하여 많은 사용자 지원에 대한 액세스를 달성할 수 있습니다. 로드 밸런싱 아키텍처는 그림에 나와 있습니다.


복잡한 웹 애플리케이션의 경우 프런트엔드 로드 밸런싱을 위해 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 서버가 있습니다. 이 두 서버는 같은 일을 하고 있습니다. 업스트림 섹션에는 두 개의 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 
로그인 후 복사

위 내용은 관련 측면을 포함하여 NodeJS 애플리케이션의 로드 밸런싱을 위한 Nginx의 사용을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿