클라이언트 요청을 대신 받아 내부 서버로 전달해주는 것

사용자의 https 요청을 받고, 내부 서버엔 HTTP로 전달해서 보안성과 성능을 모두 챙길 수 있다.

리버스 프록시란?

EC2의 NGINX에서 3개의 Docker 컨테이너로 도메인 혹은 URI 경로 기반 리버스 설정을 해주면 돼.

현재 각 컨테이너는 외부 포트로 8082, 8083, 3000에 바인딩되어 있으니, 이를 기준으로 NGINX 설정을 작성할게.

/etc/nginx/sites-available/default

server {
    listen 80;
    server_name your-domain.com;

    # 1️⃣ 메인 프론트엔드 (예: React 등)
    location / {
        proxy_pass <http://localhost:3000>;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    # 2️⃣ 백엔드 서비스 (s12p21e106)
    location /api/ {
        proxy_pass <http://localhost:8082/>;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    # 3️⃣ 은행 서비스 (bank-service)
    location /bank/ {
        proxy_pass <http://localhost:8083/>;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

📌 주의사항 & 팁

항목 내용
🔃 /api/, /bank/ 경로 끝에 슬래시 / 필수, 내부 컨테이너와 경로 매칭 중요
🛡 포트 접근 현재 컨테이너는 EC2 외부에 이미 포트 바인딩 (-p) 되어 있어서 접근 가능
📁 심볼릭 링크 설정 후 반드시 sites-enabled에 링크 걸기sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
🔁 재시작 설정 반영: sudo nginx -t && sudo systemctl reload nginx