프록시는 공통적으로
    “클라이언트와 서버 사이에서 대신 통신해 주는 존재”다.

    하지만 누구를 대신하느냐에 따라 역할이 완전히 달라지고,
    그 차이가 바로 이름에 반영된다.



    ────────────────────────────
    Forward Proxy란? (클라이언트를 대신한다)
    ────────────────────────────

    Forward Proxy는
    클라이언트를 대신해서 앞으로(forward) 나간다.

    구조는 다음과 같다.

    클라이언트 → Forward Proxy → 외부 서버

    이 구조에서 중요한 점은:

    클라이언트가 “프록시 사용”을 알고 있음

    클라이언트가 목적지 서버를 직접 지정함

    프록시는 클라이언트의 요청을 “대신 전달”함

    즉,
    프록시는 클라이언트의 대리인이다.

    그래서 이름이
    Forward(앞으로 전달하는) Proxy다.

    ────────────────────────────
    Reverse Proxy란? (서버를 대신한다)
    ────────────────────────────

    Reverse Proxy는
    서버를 대신해서 클라이언트를 맞이한다.

    구조는 다음과 같다.

    클라이언트 → Reverse Proxy → 내부 서버

    이 구조에서 중요한 점은:

    클라이언트는 프록시의 존재를 모름

    클라이언트 입장에서는 프록시가 “진짜 서버”

    내부 서버들이 프록시 뒤에 숨겨짐

    즉,
    프록시는 서버의 대리인이다.

    그래서 이름이
    Reverse(역방향에서 서버를 감싸는) Proxy다.

    ────────────────────────────
    “Forward / Reverse”는 방향이 아니다
    ────────────────────────────

    많이들 오해하는 포인트가 있다.

    Forward = 요청이 나간다 ❌

    Reverse = 요청이 들어온다 ❌

    실제 의미는 이거다.

    Forward Proxy → 클라이언트 기준

    Reverse Proxy → 서버 기준

    기준점이 어디냐가 다를 뿐이다.

    ────────────────────────────
    한 문장으로 정리하면
    ────────────────────────────

    Forward Proxy
    → “클라이언트가 외부로 나가기 위해 쓰는 프록시”

    Reverse Proxy
    → “서버가 외부 요청을 받기 위해 세워둔 프록시”

    ────────────────────────────
    이름을 이렇게 바꿔 생각하면 이해가 쉬워진다
    ────────────────────────────

    Forward Proxy
    = Client-side Proxy
    = Outbound Proxy

    Reverse Proxy
    = Server-side Proxy
    = Inbound Proxy

    ────────────────────────────
    실무 예시로 보면 더 명확해진다
    ────────────────────────────

    Forward Proxy 예:

    회사 네트워크에서 외부 인터넷 접근

    HTTPS CONNECT 프록시

    IP를 목적지 서버에게 숨김

    Reverse Proxy 예:

    Nginx, Envoy, HAProxy

    Cloudflare

    로드 밸런싱, TLS 종료, WAF

    728x90
    Posted by 천상나타.