nodejs에서 클러스터 모듈을 사용하면 싱글 프로세스로 동작하는 노드를 cpu 코어 모두 사용할 수 있도록 구현할 수 있습니다. 이를 활용하여 자신의 CPU 코어 수를 고려하여 서버를 몇 개 띄울 수 있을지 결정할 수 있습니다.
그렇다면 여러 개의 서버를 띄었을 경우, 도메인 하나에 어떻게 매핑할 수 있을까요? 바로 nginx를 이용하여 로드밸런싱을 설정할 수 있습니다.
nginx 로드밸런싱 설정 방법
#http블럭 내부에 추가
#NodeJS 서버 로드밸런싱
upstream nodejs_server {
#least_conn;
#ip_hash;
server localhost:3000;
server localhost:3001;
}
#3333번 포트 NodeJS 서버로 연결
server{
listen 3333;
server_name localhost;
location / {
proxy_pass http://nodejs_server; #upstream으로 설정한 nodejs_server로 요청을 보낸다
}
}
3000, 3001서버를 띄우고 3333번 포트로 요청을 보내면, '라운드 로빈' 형태로 2개의 서버에 로드 밸런싱됩니다. 서비스의 요구사항에 따라 옵션을 추가해야할 필요가 있습니다.
https://labs.brandi.co.kr/2018/05/25/kangww.html
Docker, NodeJS, Nginx! 너로 정했다!
편집자 주아래와 같이 용어를 표기하기로 저자와 협의함Docker, NodeJS, Nginx
labs.brandi.co.kr
'IT > web, hosting' 카테고리의 다른 글
AWS EC2에서 RDS 연동후 Flask 적용 (0) | 2020.02.22 |
---|---|
AWS EC2에서 Flask 실행 (0) | 2020.02.11 |
pythonanywhere flask 배포하기 (2) | 2020.02.10 |