Prerequisite
- Docker
- TLS 인증서
- 서버 도메인
- 443 포트 개방
docker-compose.yml
version: "3"
services:
nginx:
image: nginx
network_mode: host
volumes:
- ./default.conf:/etc/nginx/conf.d/default.conf
- /etc/letsencrypt:/etc/letsencrypt
network_mode: host 는 도커 네트워크 모드를 Host로 지정해서 외부 포트에 접근 가능하게 만듦
/etc/letsencrypt:/etc/letsencrypt 부분은 letsencrypt로 인증서 발급받은 경우이고, 인증서 위치를 지정함
default.conf
server {
listen 443 ssl;
server_name 158.179.163.124.nip.io;
ssl_certificate /etc/letsencrypt/live/158.179.163.124.nip.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/158.179.163.124.nip.io/privkey.pem;
location / {
proxy_pass http://localhost:3000;
}
}
server_name 부분은 자신의 서버 도메인 작성
ssl_certificate ssl_certificate_key 부분은 인증서와 키 경로로 작성
proxy_pass 부분의 포트는 프록시가 넘기는 포트 작성
사용법
docker compose up 으로 도커 컴포즈 실행