프록시(Proxy)의 개념과 방식
최근 Reverse Proxy의 역할을 수행하는 Nginx를 사용해 보았다. AWS Private EC2 서버에 대한 정보를 외부에 노출시키지 않기 위해 사용한 것이다. 반대로 클라이언트의 정보를 내부에 노출시키지 않는 Forward Proxy도 있다. Proxy, Forward Proxy, Reverse Proxy에 대한 개념과 각 방식의 차이점에 대해 알아보자.
프록시 (Proxy)란?
프록시 (Proxy)란?
- 프록시(Proxy) : 서버와 클라이언트 사이의 중개 역할
- 프록시 서버(Proxy Server) : 중개 기능을 하는 장치 또는 응용 프로그램
특징
- 서버-클라이언트 간 통신 중 프록시 서버를 활용하여 보안 상의 문제를 방지할 수 있음
- 클라이언트는 프록시 서버를 "Server"로 인식하고, 서버는 프록시 서버를 "Client"로 인식
- 프록시 서버가 사용되는 위치에 따라 Forward Proxy와 Reverse Proxy로 구분
포워드 프록시 (Forward Proxy)란?
포워드 프록시 (Forward Proxy)란?
- 포워드 프록시 (Forward Proxy) : 클라이언트 대신 프록시 서버가 서버에 통신해 주는 구성
기능 및 이점
- IP 숨김 : 서버는 클라이언트 IP가 아닌 프록시 서버의 IP로 요청을 받아 클라이언트 IP를 숨김
- URL 필터링 : 클라이언트는 프록시 서버를 경유하므로 외부 사이트로의 액세스 필터링 가능
- 캐싱 : 프록시 서버에 캐시를 저장하여 동일 페이지 요청에 대한 속도 향상
포워드 프록시 (Forward Proxy)
- 프록시 서버가 있는 경우 클라이언트는 프록시 서버에 접근
- 웹 서버 쪽에는 클라이언트의 정보는 남지 않고 프록시 서버에 대한 로그가 남음
리버스 프록시 (Reverse Proxy)란?
리버스 프록시 (Reverse Proxy)란?
- 포워드 프록시 (Forward Proxy) : 클라이언트의 요청을 서버에 보내 응답을 받아 전달
기능 및 이점
- 로드 밸런싱 : 여러 서버로 요청을 분산 처리하여 서버 부하 감소
- 보안 강화 : 서버의 실제 IP와 위치를 감춰 보안 강화
- 캐싱 : 자주 요청되는 콘텐츠를 저장하고 동일한 요청에 대해 빠른 응답 제공
- 애플리케이션 관리 : 여러 서버를 단일 진입점에서 관리 가능, URL 라우팅, SSL 인증서 관리 수행 가능
리버스 프록시 (Reverse Proxy)
- 프록시 서버가 있는 경우 클라이언트는 프록시 서버에 접근
- 클라이언트는 리버시 프록시 서버를 "Server"로 인식하며, 실제 서버와 직접 통신하지 않음
Forward Proxy vs Reverse Proxy
개념을 이해하여도 포워드 프록시와 리버스 프록시를 구분하는 게 어려울 수 있다. 다음과 같이 구분하면, 쉽게 구분이 되는 것 같아 적어두려고 한다.
- 포워드 프록시 : 클라이언트가 외부 링크 (구글, 네이버 등)으로 접속하기 위해 프록시 서버를 사용
- 리버스 프록시 : 클라이언트가 내부 링크 (Private)로 접속하기 위해 내부와 연결된 프록시 서버를 사용
구분 | 포워드 프록시 | 리버스 프록시 |
목적 | 클라이언트 보호, URL 필터링, 캐싱 등 | 서버 보호, 로드 밸런싱, 캐싱 등 |
클라이언트 관점 | 클라이언트가 프록시를 통해 외부와 통신 | 외부 사용자는 리버스 프록시를 진짜 서버로 인식 |
숨기려는 대상 | 클라이언트의 IP 및 정보 | 서버의 IP 및 내부 네트워크 구조 |
사용 사례 | 내부망 보호, 접근 제어, 캐싱 등 | 웹 서버 보호, 트래픽 분산 등 |
Reference
https://maker5587.tistory.com/47
'CS > 네트워크' 카테고리의 다른 글
[네트워크/Web] HTTP(HyperText Transfer Protocol) 개념과 동작 (0) | 2024.04.04 |
---|