Nginx는 웹 서버이자 리버스 프록시로서 매우 널리 사용되는 소프트웨어입니다. 리버스 프록시란 클라이언트의 요청을 받아 내부의 실제 애플리케이션 서버로 전달해주는 중개자 역할을 합니다.
리버스 프록시가 필요한 이유
백엔드 애플리케이션을 외부에 직접 노출하지 않고 Nginx를 앞단에 두면, SSL 인증서 처리, 로드 밸런싱, 캐싱, 요청 필터링 같은 작업을 한 곳에서 통합 관리할 수 있습니다.
기본 설정 예시
server { listen 80; server_name example.com; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 위 설정은 example.com으로 들어오는 요청을 로컬 3000번 포트에서 실행 중인 애플리케이션으로 전달합니다.
여러 서비스를 하나의 도메인으로 운영하기
경로 기반 라우팅을 사용하면 하나의 도메인 아래 여러 서비스를 나누어 운영할 수 있습니다.
location /api/ { proxy_pass http://127.0.0.1:4000/; } location /admin/ { proxy_pass http://127.0.0.1:5000/; } HTTPS 적용하기
Let's Encrypt와 Certbot을 사용하면 무료로 SSL 인증서를 발급받아 HTTPS를 적용할 수 있습니다. certbot --nginx 명령 한 번으로 인증서 발급부터 Nginx 설정 변경까지 자동으로 처리됩니다.
정리
Nginx 리버스 프록시는 단순한 웹 서버를 넘어 트래픽 관리의 핵심 허브 역할을 합니다. 설정 파일 문법에 익숙해지면 복잡한 인프라도 유연하게 구성할 수 있습니다.