프록시(Proxy)는 클라이언트와 서버 사이에서 중계 역할을 수행하는 서버이다. 클라이언트가 서버에 직접 요청하지 않고, 프록시 서버를 통해 간접적으로 통신함으로써 보안, 성능, 익명성 등 다양한 이점을 제공한다.
프록시는 크게 포워드 프록시와 리버스 프록시로 나뉜다.

포워드 프록시는 클라이언트 앞단에 위치하여 클라이언트가 외부 자원에 접근할 때 중계자 역할을 한다. 주로 기업, 학교, 기관 등에서 내부망 사용자가 외부 웹에 접근할 때 사용된다.
[사용자] ---> [Forward Proxy] ---> [Internet Server]
# curl 명령어에 프록시 설정하기
curl -x http://proxy.company.com:8080 https://example.com

리버스 프록시는 서버 앞단에 위치하여 클라이언트의 요청을 받아 백엔드 서버로 전달하는 역할을 한다. 클라이언트는 실제 서버의 존재를 알지 못하고 리버스 프록시에게 요청한다.
[Client] ---> [Reverse Proxy] ---> [App Server 1, App Server 2, ...]
# NGINX Reverse Proxy 설정 예시
server {
listen 80;
location /api/ {
proxy_pass http://backend-service;
}
}
| 항목 | 포워드 프록시 | 리버스 프록시 |
|---|---|---|
| 위치 | 클라이언트 앞 | 서버 앞 |
| 목적 | 클라이언트 보호, 익명성 | 서버 보호, 트래픽 분산 |
| 클라이언트 시야 | 실제 서버를 봄 | 실제 서버를 모름 |
| 보안 효과 | 사용자의 IP 숨김 | 서버의 IP 숨김 |
프록시는 단순한 네트워크 중계자가 아니다. 다양한 보안, 성능, 운영 측면에서 강력한 도구로 활용된다. 내부 보안을 강화하거나 서버를 보호하고자 한다면 포워드/리버스 프록시의 역할을 잘 이해하고 적절히 설계하는 것이 중요하다.
실제 운영 환경에서는 포워드 프록시는 조직 내부 보안, 리버스 프록시는 서비스 인프라 보호 및 확장성을 위한 수단으로 널리 사용된다.