프록시 서버

이창훈·2024년 7월 22일

프록시 서버는 클라이언트가 서버에 직접 접근하지 않고, 중간에 대신 전달해주는 역할을 하는 서버입니다. 이번 포스팅에서는 프록시 서버의 동작 원리, 필요성, 종류에 대해 알아보겠습니다.

1. 동작 원리

프록시 서버는 다음과 같은 방식으로 동작합니다:

요청 : 사용자가 웹 브라우저에서 도메인을 입력합니다.
전달 : 요청은 프록시 서버로 전달되며, 프록시 서버는 캐시 역할을 합니다.
확인 : 프록시 서버가 요청된 페이지를 가지고 있는지 확인합니다.

  • 가지고 있는 경우: 페이지가 최신 버전인지 확인하고, 필요한 경우 갱신할 부분만 가져옵니다.
  • 가지고 있지 않은 경우: 서버와 연결하여 페이지를 가져옵니다.

2. 프록시 서버의 필요성

프록시 서버는 다양한 이유로 필요합니다:

보안 : 요청과 응답의 필터링

  • 프록시 서버를 이용하지 않으면 서버의 주소가 쉽게 노출되어 보안에 취약합니다.
  • 프록시 서버를 경유하면 서버의 IP를 숨길 수 있습니다.
  • 프록시 서버를 방화벽으로 사용하여 네트워크 트래픽을 모니터링하고 제어할 수 있습니다.

분산 처리: 캐시 사용과 로드 밸런싱

  • 프록시 서버는 요청된 내용을 캐시로 저장합니다.
  • 캐시에 저장된 내용을 재요청할 때 서버에 접속할 필요가 없어 전송 시간을 절약하고, 외부 트래픽을 줄여 병목현상을 방지합니다.

우회

  • 프록시 서버를 이용하면 클라이언트의 IP가 인터넷에 직접 노출되지 않아 보안에 유리합니다.
  • 특정 서버를 우회하여 접속할 수 있습니다.

ACL: 사이트 접근 정책

  • ACL(Access Control List)은 프록시 서버에 접속할 수 있는 범위를 설정하는 옵션입니다.
  • 사이트 접근 정책을 정의하여 특정 사이트에 대한 접근을 제한할 수 있습니다.

3. 프록시 서버의 종류

프록시 서버는 크게 Forward 프록시와 Reverse 프록시로 나뉩니다.

Forward 프록시

  • Forward 프록시는 클라이언트가 직접 서버에 접근하지 않고, 프록시 서버가 요청을 받아 서버에 연결합니다.
  • 클라이언트는 프록시 서버를 통해 인터넷에 연결되며, 프록시 서버는 캐시를 통해 데이터를 저장합니다.
  • 대역폭 사용을 줄이고, 특정 사이트에 대한 접근을 제한할 수 있습니다.

Reverse 프록시

  • Reverse 프록시는 서버 측에서 클라이언트의 요청을 받아 내부 서버에 전달합니다.
  • 클라이언트는 내부 서버 정보를 알 필요 없이 리버스 프록시만 통해 요청을 처리합니다.
  • 보안 및 로드 밸런싱에 유리하며, SSL 암호화 작업을 대신 처리해줍니다.

로드 밸런싱

  • 로드 밸런싱은 서버의 부하를 분산시켜 처리하는 작업입니다.
  • NGINX와 같은 로드 밸런서를 사용하여 부하를 분산시키고, 서버의 성능을 최적화할 수 있습니다.
  • 서버 증설(Scale-out) 및 업그레이드(Scale-up)를 통해 부하를 관리합니다.

차이점

구분Forward 프록시Reverse 프록시
End Point클라이언트가 요청하는 실제 서버 도메인프록시 서버 도메인
감추어지는 대상클라이언트서버
통신 대상클라이언트와 프록시 서버, 외부 서버와 통신프록시 서버와 내부망 서버, 클라이언트와 통신

프록시 서버는 다양한 기능과 장점을 제공하며, 네트워크 보안 및 성능 최적화에 중요한 역할을 합니다. 이번 포스팅을 통해 프록시 서버의 기본 개념과 필요성을 이해하는 데 도움이 되었길 바랍니다.

참고자료 : https://github.com/devSquad-study/2023-CS-Study/blob/main/Network/network_proxy_server.md

profile
한화시스템 BEYOND SW CAMP 2기

1개의 댓글

comment-user-thumbnail
2024년 7월 23일

잘 읽었읍니다.
고오맙읍니다.
제 벨로그도 방문 한 번 하고 가시면 좋겠읍니다.

답글 달기