리버스 프록시

서버 측에 위치하여 클라이언트의 요청을 받아 내부 서버에 대신 전달해주는 프록시 서버입니다.

동작 흐름

클라이언트 → 인터넷 → 리버스 프록시 → 내부 서버 A
                          ↓         → 내부 서버 B
                    클라이언트는       → 내부 서버 C
                    실제 서버를 모름
  1. 클라이언트가 리버스 프록시의 주소로 요청을 보냄
  2. 리버스 프록시가 적절한 내부 서버를 선택하여 요청을 전달
  3. 내부 서버가 응답을 리버스 프록시에 반환
  4. 리버스 프록시가 클라이언트에게 응답을 전달

주요 용도

용도설명
로드밸런싱여러 서버에 트래픽을 분산하여 부하를 줄임
SSL 종료프록시에서 HTTPS 암/복호화를 처리하여 내부 서버 부담 감소
캐싱정적 콘텐츠를 프록시에서 바로 응답하여 속도 향상
보안내부 서버의 IP와 구조를 외부에 노출하지 않음
압축응답 데이터를 gzip 등으로 압축하여 전송

대표 소프트웨어

이름특징
Nginx경량, 고성능, 가장 널리 사용되는 리버스 프록시
HAProxy로드밸런싱에 특화, TCP/HTTP 모두 지원
AWS ALB/NLB클라우드 환경의 관리형 로드밸런서
Apache httpdmod_proxy 모듈로 리버스 프록시 기능 제공

Nginx 설정 예시

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend_servers;  # 내부 서버로 요청 전달
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

upstream backend_servers {
    server 10.0.0.1:8080;  # 내부 서버 A
    server 10.0.0.2:8080;  # 내부 서버 B
    server 10.0.0.3:8080;  # 내부 서버 C
}

포워드 프록시와의 핵심 차이

포워드 프록시: 클라이언트를 보호 → 서버는 실제 클라이언트를 모름
리버스 프록시: 서버를 보호     → 클라이언트는 실제 서버를 모름

CSLOG에서 보기