CS 지식

[CS 지식] 리버스 프록시란?

seongmin08 2026. 9. 30. 20:03

리버스 프록시란?

클라이언트의 요청을 대신 받아 뒤에 있는 실제 서버(들)에게 전달해주는 서버

포워드 프록시와의 차이
포워드 프록시는 클라이언트의 편에 서서 "누가 요청했는지"를 서버로부터 숨긴다.(사내망에서 외부 접속을 대리)
리버스 프록시는 서버 편에 서서 "실제 서버가 몇 대인지, 어떤 구조인지"를 클라이언트로부터 숨긴다.

리버시 프록시 이해를 도울 생성형 이미지

사용시기?

1. 보안을 강화하고 싶을 때

- 실제 데이터가 들어있는 내부 웹 서버의 IP 주소를 외부에 노출하고 싶지 않을 때

2. 트래픽이 많아 서버를 여러 대 돌릴 때

- 접속자가 많아서 서버 1대로 감당이 안될 때 여러 서버로 요청을 나누어 주어야 하는 경우에 씀 (로드밸런싱 기능이 이 리버스 프록시라는 작동 방식을 이용해서 만든 것)

3. SSL/TLS(HTTPS) 암호화 처리를 일괄 관리하고 싶을 때

- 각 웹 서버마다 SSL 인증서를 설치하지 않고 입구(프록시)에서 한 번에 암복호화를 처리하고 싶을 때 사용

4. 서버 응답 속도를 올리고 싶을 때

- 자주 요청되는 정적 파일(이미지, CSS 등)을 미리 캐싱 해두고 빠르게 응답해주고 싶을 때 사용

리버스 프록시 작동 방식

1. 클라이언트 요청: 사용자가 브라우저에 주소를 입력하고 요청을 보냄

2. 리버스 프록시 수신: 이 요청은 실제 웹 서버가 아닌 맨 앞에 서 있는 리버스 프록시 서버(ex.Enginx, HAProxy)에 먼저 도착

3. 요청 검증 및 전달: 리버스 프록시는 요청을 검사(보안 체크, 캐시 확인 등)한 뒤 뒤에 있는 실제 내부 웹서버(WAS/API 서버)로 요청을 전달

4. 내부 서버 처리: 내부 웹 서버가 데이터를 처리하고 결과를 리버스 프록시에게 돌려줌

5. 최종 응답: 리버스 프록시가 이 응답을 받아 클라이언트에게 최종 전달

실제 적용 사례

1. Nginx / Apache를 이용한 웹 서버 앞단 구성

- Node.js, SpringBoot, Python 등으로 만든 애플리케이션 서버 바로 앞에 Nginx를 리버스 프록시로 두어 HTTPS 적용 및 포트 리다이렉팅(80 -> 443 -> 8080)을 처리한다.

2. Cloudflare와 같은 CDN / WAF(웹 방화벽) 서비스

- Cloudflare를 사용하면 도메인이 Cloudflare의 리버스 프록시 IP로 연결되어 디도스 공격을 입구에서 차단하고 정적 콘텐츠를 캐싱하여 속도를 높여준다.

3. API Gateway (마이크로서비스 아키텍쳐 -  MSA)

- 여러 개의 소형 서비스(사용자 서비스, 결제 서비스, 주문 서비스 등)로 나누어진 시스템에서 클라이언트는 하나의 Gateway(리버스 프록시) 주소로만 요청하고 Gateway가 적절한 내부 서비스로 경로를 배정(Routing)해 줍니다.

 

꼭 알아야 하는 것

서버는 프록시의 IP만 보이기 때문에 진짜 손님 IP를 알려면 프록시가 쥐어준 쪽지(X-Forwarded-For)를 확인해야 한다.
단, 이 쪽지는 조작이 쉬우므로 '내가 관리하는 안심할 수 있는 프록시'가 준 쪽지만 믿어야 한다.

'CS 지식' 카테고리의 다른 글

[CS 지식] CDN이란?  (0) 2026.10.02
[CS 지식(보안)] XSS(Cross-Site Scripting)이란?  (0) 2026.10.02
[CS 지식] DNS란?  (0) 2026.09.30
[CS 지식] 실시간 통신을 하는 방법들  (0) 2026.09.16
[CS 지식] SSL/TLS 암호화란?  (0) 2026.09.15