클라이언트 요청을 대신 받아 내부 서버로 전달해주는 것
사용자의 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 |