리버스 프록시란? 사용자 요청을 대신 받아 실제 서버로 전달하는 구조 쉽게 이해하기
리버스 프록시는 서버 앞에서 요청을 받아 앱으로 전달합니다. Nginx·TLS 종료·로드밸런싱·X-Forwarded·502·504까지 초보 기준으로 정리합니다.
Nginx·Apache·CDN·웹방화벽·로드밸런서·Docker 이야기를 하다 보면 리버스 프록시(Reverse Proxy)가 나옵니다. 리버스 프록시는 사용자 앞에서 요청을 먼저 받은 뒤, 실제 홈페이지·애플리케이션 서버로 대신 전달하는 중간 서버입니다.
쉽게 말하면 — 홈페이지 서버 앞에서 손님 요청을 받아 안쪽 담당자에게 넘기는 안내 데스크(호텔 프런트)입니다.
왜 Reverse일까?
포워드 프록시는 사용자를 대신해 밖으로 나갑니다. 리버스 프록시는 서버 쪽 대리인입니다. 포워드 = 손님 쪽 대리 · 리버스 = 가게 쪽 대리. 사용자는 보통 https://example.com만 보고, 뒤의 :3000 등은 몰라도 됩니다.
왜 앞에 둘까?
- 실제 서버·포트 숨김 · HTTPS(TLS 종료) 통합 관리
- 경로·서브도메인으로 여러 앱 연결 · 로드밸런싱 · 장애 서버 제외
- 캐시 · 정적 파일 직접 제공 · 압축 · 접근·업로드 크기 제한 · 로그
- 웹방화벽처럼 앞에서 악성 요청 차단(설정·WAF 필요)
예: Nginx가 443으로 받고 127.0.0.1:3000 Node.js로 넘깁니다. /·/admin·/api나 www·api 서브도메인마다 다른 포트·컨테이너로 보낼 수 있습니다. Docker·한 서버 다중 사이트도 같은 패턴입니다.
CDN · 로드밸런서 · API Gateway
CDN은 리버스 프록시처럼 원본 앞에서 요청을 받을 수 있지만, 초점은 지역 캐시·배포입니다. 로드밸런서는 「어느 서버로 나눌지」에 가깝고, 한 장비가 리버스+분배를 함께 하기도 합니다. API Gateway는 중계에 더해 API 인증·한도·버전 같은 전용 기능이 붙는 경우가 많습니다.
X-Forwarded-* · 리디렉션 루프
앱 입장에서는 직접 상대가 프록시라 IP가 프록시로만 보일 수 있습니다. 그래서 X-Forwarded-For·X-Forwarded-Proto로 원래 사용자·프로토콜을 넘깁니다(HTTP 헤더). Proto가 어긋나면 앱이 HTTP로 착각해 HTTPS 강제 리디렉션이 반복될 수 있습니다. 아무 헤더나 믿지 말고 신뢰하는 프록시 값만 봐야 합니다.
502 · 504 · 병목
뒤쪽 앱이 꺼져 있으면 502 Bad Gateway, 응답이 너무 늦으면 504 Gateway Timeout이 납니다. Nginx는 살아 있고 Node만 죽은 경우가 대표적입니다. 프록시 자체가 멈추거나 성능이 모자라면 실제 서버가 정상이어도 전체가 느려지거나 접속이 막힐 수 있어, 규모가 크면 프록시도 다중화합니다.
DNS와의 관계
DNS는 도메인을 리버스 프록시(또는 CDN) IP까지 안내하고, 프록시가 그다음 내부 앱으로 넘깁니다. 업로드 크기 제한이 프록시에 있으면 앱에 닿기 전에 413이 날 수도 있습니다. SEO는 프록시 자체보다 공개 URL·상태 코드·콘텐츠가 정상인지가 중요합니다.
자주 묻는 질문
리버스 프록시란?
사용자 요청을 먼저 받아 실제 웹·앱 서버로 전달하는 중간 서버입니다.
포워드와 차이는?
포워드는 사용자를, 리버스는 서버를 대신합니다.
Nginx는 리버스인가요?
웹서버이면서 리버스 프록시 역할도 할 수 있습니다.
CDN과 같나요?
같지는 않습니다. CDN은 지역 배포·캐시에 초점이 있고 리버스 구조를 쓸 수 있습니다.
정리
리버스 프록시 = 홈페이지 서버 앞 안내 데스크 · 사용자 → Nginx → Node.js
HTTPS·여러 서비스 연결·캐시·접근 제어·서버 숨김·트래픽 분산까지 앞에서 처리할 수 있습니다. 방문자가 많아 서버 한 대로 버티기 어려우면, 프록시가 여러 서버 중 어디로 보낼지까지 맡는 경우가 많습니다. 이렇게 요청을 나눠 한곳에 부하가 몰리지 않게 하는 기술을 로드밸런싱(Load Balancing)이라고 합니다.