- NCP VM 사용 (Ubuntu 22.04 / vCPU2, RAM 4GB)
- 사전에 Docker engine 설치 완료
- 공인 IP:8001로 접속 시 5001, 5002, 5003번 포트를 사용하는 노드들의 로드밸런싱 구현 해 보기
~$ docker run -it -d -e SERVER_PORT=5001 -p 5001:5001 -h alb-node01 -u root --name=alb-
node01 dbgurum/nginxlb:1.0
~$ docker run -it -d -e SERVER_PORT=5002 -p 5002:5002 -h alb-node02 -u root --name=alb-
node02 dbgurum/nginxlb:1.0
~$ docker run -it -d -e SERVER_PORT=5003 -p 5003:5003 -h alb-node03 -u root --name=alb-
node03 dbgurum/nginxlb:1.0
~$ docker ps -a | grep node
84be5755c789 dbgurum/nginxlb:1.0 "/cnb/lifecycle/laun…" 5 seconds ago Up 4 seconds 0.0.0.0:5003-
>5003/tcp, :::5003->5003/tcp alb-node03
0eff7905f458 dbgurum/nginxlb:1.0 "/cnb/lifecycle/laun…" 8 seconds ago Up 8 seconds 0.0.0.0:5002-
>5002/tcp, :::5002->5002/tcp alb-node02
f6c4c0941d8b dbgurum/nginxlb:1.0 "/cnb/lifecycle/laun…" 12 seconds ago Up 11 seconds 0.0.0.0:5001-
>5001/tcp, :::5001->5001/tcp alb-node01
~$ sudo netstat -nlp | grep 5001
~$ sudo netstat -nlp | grep 5002
~$ sudo netstat -nlp | grep 5003
root@wookjin:~# docker run -d -p 8001:80 --name=proxy-container nginx:1.25.0-alpine
fac947af0f6d7b747b889a9f6be3c8afabb4938872a210918071a55e81bd8931
root@wookjin:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fac947af0f6d nginx:1.25.0-alpine "/docker-entrypoint.…" 6 seconds ago Up 6 seconds 0.0.0.0:8001->80/tcp proxy-container
9a457a3f2181 dbgurum/nginxlb:1.0 "/cnb/lifecycle/laun…" 32 minutes ago Up 32 minutes 0.0.0.0:5003->5003/tcp alb-node03
546685c93357 dbgurum/nginxlb:1.0 "/cnb/lifecycle/laun…" 33 minutes ago Up 33 minutes 0.0.0.0:5002->5002/tcp alb-node02
a3da3eaffe4a dbgurum/nginxlb:1.0 "/cnb/lifecycle/laun…" 47 minutes ago Up 47 minutes 0.0.0.0:5001->5001/tcp alb-node01
root@wookjin:~# cat nginx.conf
events {
worker_connections 1024;
}
http {
upstream backend-alb {
server 223.130.156.230:5001;
server 223.130.156.230:5002;
server 223.130.156.230:5003;
}
server {
listen 80 default_server;
location / {
proxy_pass http://backend-alb;
}
}
}
root@wookjin:~# docker cp nginx.conf proxy-container:/etc/nginx/nginx.conf
Successfully copied 2.05kB to proxy-container:/etc/nginx/nginx.conf
root@wookjin:~# docker restart proxy-container
proxy-container
root@wookjin:~# curl localhost:5001
Listening: 5001, Hosting: alb-node01
root@wookjin:~# curl localhost:5002
Listening: 5002, Hosting: alb-node02
root@wookjin:~# curl localhost:5003
Listening: 5003, Hosting: alb-node03
nginx.conf 파일 내 upstream 블록에서 weight 설정