클라이언트에서 서버로 접속 시 직접적으로 접속하지 않고 중간에 대신 전달해주는 서버
1. 동작 원리
- 요청 : 사용자가 웹 브라우저에서 도메인을 입력한다.
- 전달 : 요청에 대하여 캐시 역할을 하는 프록시 서버로 전달한다.
- 확인 : 프록시 서버 내에 도메인 홈페이지의 페이지를 가지고 있는지 체크한다.
- 가지고 있는 경우 :
- 홈페이지가 있는 서버에 자신이 가진 페이지가 최신 버전인지 체크
- 필요한 경우 갱신할 부분만 가져옴
- 가지고 있지 않을 경우 :
- 홈페이지가 있는 서버와 연결하여 페이지를 가져온다.
2. Proxy Server는 왜 필요할까?
보안 : 요청과 응답의 필터링
- 프록시 서버를 이용하지 않으면 서버의 주소가 쉽게 노출되고 다른 익명의 사용자가 서버로 접근하기 쉬워짐
- 프록시 서버가 중간에 경유하게 되면 서버의 IP 숨기는 것 가능
- 프록시 서버를 방화벽으로 사용하기도 함 (프록시 방화벽)
방화벽 (Firewall)
- 보안 규칙에 기반한, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템
- 신뢰할 수 있는 내부 네트워크, 신뢰할 수 없는 외부 네트워크 간의 장벽을 구성
프록시 방화벽
- 세션에 포함되어 있는 정보의 유해성을 검사하기 위함
- 방화벽에서 세션을 종료하고 새로운 세션을 형성하는 방식
- 출발지에서 목적지로 가는 세션을 가로채어 검사를 수행하는 형태
- 패킷 필터에 비해 많은 부하를 주어서 속도는 느리지만 더 많은 검사 가능
- 프로토콜 변경 등 추가적인 기능 수행 가능
분산 처리 : 캐시 사용 로드 밸런싱
- 프록시 서버 중 일부는 요청된 내용을 캐시를 사용해 저장
- 캐시에 저장된 내용에 대한 재요청은 서버 따로 접속 필요 없음 → 전송 시간 절약, 외부 트래픽 줄임으로써 병목현상 방지
우회
- 클라이언트가 인터넷과 직접적으로 통신하면 IP가 직접적으로 인터넷에 드러나 보안적으로 취약함
- 프록시 서버를 두면 인터넷 서버는 프록시 서버와 통신하기 때문에 클라이언트들의 IP를 알 수 없음
- 특정 서버를 우회하여 접근할 수 있도록 허용 가능
ACL : 사이트 접근 정책
ACL (Access Control List) : Proxy Server에 접속할 수 있는 범위를 설정하는 옵션
- 접근 제어 목록(ACL): 개체나 개체 속성에 적용된 허가 목록
- 누가 또는 무엇이 객체 접근 허가를 받는지, 어떠한 작업이 허가를 받을지를 지정
3. 종류
Forward 프록시
- 포워딩 프록시(Forwarding Proxy)를 통상적으로 프록시라고 부름
- 클라이언트가 인터넷에 직접 접근하는 것이 아니라 Forward Proxy Server가 요청을 받고 인터넷에 연결하여 결과를 클라이언트에 전달
- 로컬 디스크에 데이터 저장
- 클라이언트가 프록시 서버 사용 설정을 해야 함 → 사용 인식 가능
- 대역폭 사용 감소
- 접근 정책 구현이 용이하며 비용이 저렴
- 정해진 사이트만 연결할 수 있어 기업 환경에서 많이 이용
Reverse 프록시
- 포워딩 프록시가 서버 측에도 존재하는 개념
- 클라이언트가 데이터를 요청하면 리버스 프록시가 요청을 받아 내부 서버에서 데이터를 받은 후 클라이언트에 전달
- 클라이언트는 프록시 서버에 연결된 것 인식 불가능
- 내부 서버가 직접 서비스 제공하는 대신 보안을 강화
- 내부 서버(WAS)에 직접 접근할 경우 DB 접근 가능 → 보안 문제 발생 가능
- 리버스 프록시 서버를 DMZ에 두고 내부망에서 서비스를 제공하는 방식이 일반적
- 내부 서버 설정으로 로드 밸런싱(Load Balancing) 및 서버 확장 가능
- SSL 암호화 부담을 줄여줌
로드 밸런싱 (Load Balancing)
- 서버의 부하를 분산시키는 작업
- NGinx 등을 로드 밸런서로 사용하여 부하 감소
- 서버 추가 증설하여 부하를 분산시키는 방법: Scale-out
- 기존 서버 성능을 확장하는 방법: Scale-up
4. 차이점
구분Forward ProxyReverse Proxy
End Point 클라이언트가 요청하는 End Point가 실제 서버 도메인 클라이언트가 요청하는 End Point가 프록시 서버 도메인
감추어지는 대상 | 클라이언트 | 서버 |
통신 대상 | 클라이언트와 Proxy 서버가 통신하여 인터넷을 통해 외부에서 데이터 가져옴 | Proxy 서버와 내부망 서버가 통신하여 클라이언트 요청에 응답 |
이처럼 프록시 서버는 보안, 성능, 접근 제어 등의 이유로 널리 사용되며, 환경과 목적에 따라 Forward 프록시와 Reverse 프록시로 구분하여 활용할 수 있다.
'CS 지식' 카테고리의 다른 글
데이터베이스 무결성과 키 개념 정리 (0) | 2025.02.02 |
---|---|
SOAP (0) | 2025.02.02 |
Framework vs Library (2) | 2024.10.15 |
SWEA [Computational Thinking] 1. 논리와 증명 / 수와 표현 (0) | 2024.06.28 |
SWEA [Computational Thinking] 0. 프로그래밍과 논리 / 수학 (0) | 2024.06.28 |