"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; } }
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/'); });
이제 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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.