Docker + Nginx + Reverse Proxy + TLS

junsangyu·2024년 1월 9일

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 으로 도커 컴포즈 실행
profile
👨🏻‍💻

0개의 댓글