개요
프록시 서버는 클라이언트가 자신을 거쳐 다른 네트워크 서비스에 간접 접속하도록 중계하는 시스템을 뜻함 서버와 클라이언트 사이에서 요청과 응답을 대리 처리해 보안성, 성능, 안정성 향상을 노림 프록시는 크게 포워드 프록시와 리버스 프록시로 구분되며, 위치와 목적이 다름
프록시 기본 개념
- 프록시 서버 정의: 클라이언트와 서버 사이 중계 계층, 요청 위임과 응답 전달 수행
- 기대 효과: 접근 제어, 캐싱을 통한 지연 감소, SSL/TLS 종료에 따른 오리진 부하 경감, 로드 밸런싱, 익명성 제공
포워드 프록시
포워드 프록시는 클라이언트 앞단에 배치되는 형태를 지칭함 클라이언트는 외부 웹 서버에 직접 연결하지 않고 포워드 프록시로 요청을 보내며, 프록시가 이를 대신 전달하고 응답을 다시 반환함
주요 사용 맥락
- 접근 제어와 정책 집행: 기관이나 조직 내 사용자에 대해 특정 도메인 차단, 시간대별 제한, 인증 기반 사용 정책 적용
- 익명성 제공: 외부에서 볼 때 요청의 발신자는 프록시로 보이며, 개별 클라이언트의 실제 IP 노출 최소화
- 캐싱 및 트래픽 절감: 동일 리소스 반복 요청 시 프록시 캐시 활용로 대역폭 절감과 응답 시간 단축
핵심 포인트는 포워드 프록시가 조직 내부 사용자 측에 서서 외부로의 접근을 통제하고 대표한다는 점임
리버스 프록시
리버스 프록시는 오리진 웹 서버 앞단에 배치됨 클라이언트는 리버스 프록시로 요청을 보내고, 리버스 프록시는 내부의 하나 또는 여러 오리진 서버로 라우팅 후 응답을 반환함
주요 사용 맥락
- 로드 밸런싱: 다수의 오리진 서버로 트래픽을 분산해 과부하 방지 및 가용성 향상
- 보안 경계 강화: 오리진 서버의 IP와 토폴로지 비공개화, WAF나 레이트 리밋 같은 경계 정책 적용이 용이함. 단, 공격 표면이 프록시 앞단으로 집중될 수 있음
- 콘텐츠 캐싱: 사용자와 가까운 에지 또는 프록시 계층에서 정적/반정적 리소스를 캐시해 대기 시간 감소 및 오리진 부하 완화
- TLS 종료(TLS termination): 들어오는 트래픽 복호화와 나가는 응답 암호화를 프록시에서 처리해 오리진의 CPU 부담 감소. 텀블링 키 관리와 인증서 갱신을 중앙화 가능
CDN은 전형적으로 글로벌 에지 리버스 프록시 역할을 수행하며, 캐싱과 보안 기능을 결합해 대규모 트래픽을 흡수함. 다만 대규모 DDoS에 대해서는 별도 보호 체계와 결합해야 효과적임
포워드 프록시 vs 리버스 프록시
- 배치 위치
- 포워드 프록시: 클라이언트 측 전면
- 리버스 프록시: 오리진 서버 측 전면
- 직접 통신
- 포워드 프록시 사용 시 클라이언트와 외부 서버의 직접 통신 부재
- 리버스 프록시 사용 시 클라이언트와 오리진의 직접 통신 부재
- 주 사용 목적
- 포워드: 내부 사용자 접근 제어, 익명성, 아웃바운드 정책, 클라이언트 캐싱
- 리버스: 로드 밸런싱, 오리진 보호, 에지 캐싱, TLS 종료, 중앙화된 보안 정책
- 운영 주체
- 포워드: 조직의 네트워크 관리자나 보안 팀이 사용자 측 정책으로 운영
- 리버스: 서비스 운영자가 오리진 보호와 트래픽 관리를 위해 운영
마무리
두 프록시는 모두 요청을 중계하지만, 누구를 대표하고 어디에 배치되는지에 따라 용도와 효과가 달라짐 조직 내부 단말의 인터넷 사용을 통제하거나 익명성을 부여하려면 포워드 프록시. 대외 서비스의 확장성과 보안을 강화하려면 리버스 프록시 선택 실제 환경에서는 둘을 병행해 경계 보안, 캐싱, 로드 밸런싱, TLS 종료를 조합하는 구성이 일반적임