본문 바로가기

Network

[Network] 프록시 서버

프록시 서버란?

프록시 서버(Proxy Server)는 클라이언트와 서버 사이에서 중계 역할을 수행하는 서버이다.

클라이언트가 직접 서버와 통신하지 않고 프록시 서버를 통해 요청을 보내고 응답을 받는다.

이를 통해 보안, 성능, 익명성, 트래픽 제어 등의 이점을 얻는다.

프록시는 다양한 형태로 제공되지만 가장 대표적인 리버스 프록시와 포워드 프록시를 알아보자.

 

리버스 프록시 (Reverse Proxy)

리버스 프록시서버 측에 위치하여 클라이언트 요청을 받아 적절한 서버로 전달하고, 서버의 응답을 클라이언트로 반환한다.

  • 역할 및 특징:
    • 클라이언트는 실제 서버를 알 필요 없이 리버스 프록시를 통해 요청(서버의 IP 대신 프록시 IP를 사용).
    • 로드밸런싱, 보안(HTTPS 종단), 캐싱, 요청 필터링 등을 사용하여 서버 관리에 유용.
    • 실제 서버(원본 서버)의 IP 주소를 숨기고, 공격으로부터 보호.
    • 서버를 보호하는 방패막 같은 역할
  • 사용 사례:
    • Nginx, Apache HTTP Server, AWS Elastic Load Balancer.
    • 예) 클라이언트가 요청 리버스 프록시 서버 적절한 백엔드 서버.

포워드 프록시 (Forward Proxy)

포워드 프록시클라이언트 측에 위치하여 클라이언트의 요청을 받아 서버로 전달하고, 서버 응답을 클라이언트로 반환한다.

  • 역할 및 특징:
    • 클라이언트의 IP 주소를 숨기고 익명성 제공.(서버에서 받는 IP는 프록시 서버 IP)
    • 특정 IP의 접근 제한
    • 특정 웹사이트나 리소스에 접근 제어.
    • 캐싱을 통해 성능 향상.
    • 클라이언트가 외부에 노출이 되지 않도록 하는 역할
  • 사용 사례:
    • 트래픽 모니터링, 로깅
    • 특정 시간에 접근을 허용
    • 유해 컨텐츠, 비업무 관련 사이트 차단
    • VPN, 웹 브라우저에서의 프록시 설정.

 

리버스 프록시 vs 포워드 프록시 비교

특징 리버스 프록시 포워드 프록시
위치 서버 측 클라이언트 측
역할 클라이언트가 서버에 직접 접근하는 대신
프록시를 통해 요청 전달
클라이언트가 인터넷/서버에 직접 접근하는 대신
프록시를 통해 요청 전달
작동 방식 클라이언트 요청 → 리버스 프록시 → 서버 클라이언트 요청 → 포워드 프록시 → 서버
주요 목적 로드 밸런싱, 캐싱, 디도스 방어, 내부 서버 IP 보호 익명성 유지, 인터넷 사용 제어, 캐싱, 콘텐츠 필터링

 

'Network' 카테고리의 다른 글

[Network] CORS  (0) 2024.12.17
[Network] DNS  (0) 2024.12.03
[Network] HTTP와 HTTPS  (0) 2024.11.27
[Network] HTTP 버전별 특징  (0) 2024.11.24
[Network] Stateful vs Stateless  (2) 2024.11.24