Docker다중서버
Docker 컨테이너 다중 서버 프록시 예제
Nginx를 Docker Compose로 여러 컨테이너에 프록시하는 예제를 제공합니다. 공유 네트워크를 통해 컨테이너 이름을 호스트로 사용하며, SSL 종료를 포함합니다.[1][2]
Docker Compose 파일
하나의 docker-compose.yml로 nginx와 여러 백엔드 컨테이너를 정의합니다. 네트워크를 공유해 내부 통신을 간단히 합니다.[1]
version: '3.8'
services:
nginx:
image: nginx:alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./ssl:/etc/nginx/ssl # SSL 인증서 마운트
depends_on:
- app1
- app2
networks:
- proxy-net
app1:
image: nginx:alpine # 예제 백엔드1
networks:
- proxy-net
app2:
image: nginx:alpine # 예제 백엔드2
networks:
- proxy-net
networks:
proxy-net:
Nginx 설정 (nginx.conf)
upstream으로 여러 컨테이너를 그룹화하고 SSL을 처리합니다. path 기반 라우팅 예시입니다.[1][2]
events {}
http {
upstream backends {
least_conn;
server app1:80;
server app2:80;
}
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
location /app1/ {
proxy_pass http://backends/app1/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /app2/ {
proxy_pass http://backends/app2/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
실행 및 SSL 설정
docker-compose up -d로 시작.- SSL: Certbot 컨테이너 추가 또는 호스트에서
certbot certonly --standalone후 volumes 마운트.[3] - 테스트:
curl https://yourdomain.com/app1/– 로드 밸런싱 확인.[1]
Docker 환경에서 컨테이너 이름으로 proxy_pass 사용이 핵심이며, 사용자 LLM 서버에 맞게 app1/app2 이미지를 교체하세요.[4]
인용:
[1] Docker compose : Nginx reverse proxy with multiple containers https://stackoverflow.com/questions/75584792/docker-compose-nginx-reverse-proxy-with-multiple-containers
[2] Setting Up a Reverse Proxy with Nginx and Docker-Compose https://support.tools/nginx-docker-compose-reverse-proxy/
[3] Nginx Virtual Host https://dimuthukasunwp.github.io/Articles/Hosting-multiple-sites-or-applications-using-Docker-and-NGINX-reverse-proxy-with-Letsencrypt-SSL.html
[4] How can I share an nginx reverse proxy with multiple containers? https://www.reddit.com/r/docker/comments/q9jfqp/how_can_i_share_an_nginx_reverse_proxy_with/
[5] How to Host Multiple Docker Containers on a Single Server with Nginx Reverse Proxy? https://www.youtube.com/watch?v=spbkCihFpQ8
[6] How to run multiple containers with an Nginx reverse proxy - catalyst2 https://www.catalyst2.com/knowledgebase/networking/how-to-run-multiple-containers-with-an-nginx-reverse-proxy/
[7] Enable reverse proxy on multiple containers with single host listening to same port · nginx nginx · Discussion #315 https://github.com/nginx/nginx/discussions/315
[8] NGINX 다중 서버 upstream 설정 https://blog.naver.com/PostView.naver?blogId=hanajava&logNo=223124444196&categoryNo=87&proxyReferer=&noTrackingCode=true
[9] Multiple docker containers https://www.reddit.com/r/nginxproxymanager/comments/1ihrve2/multiple_docker_containers/
[10] Hosting multiple sites or applications using Docker and NGINX ... https://olex.biz/2019/09/hosting-with-docker-nginx-reverse-proxy-letsencrypt/
[11] Nginx 웹 서버 포트 별로 Reverse Proxy 설정 - ben_DS https://bentist.tistory.com/81
[12] Reverse proxy for same port multiple containers - Docker Forums https://forums.docker.com/t/reverse-proxy-for-same-port-multiple-containers/51293
[13] Docker를 활용한 Nginx 가상 호스트 설정과 멀티사이트 운영 https://velog.io/@kkd0059/Docker를-활용한-Nginx-가상-호스트-설정과-멀티사이트-운영
[14] Nginx with multiple containers - Help https://community.letsencrypt.org/t/nginx-with-multiple-containers/199378
[15] serving multiple docker microservices behind nginx proxy https://stackoverflow.com/questions/41837020/serving-multiple-docker-microservices-behind-nginx-proxy