[HTTP] 프록시 서버
프록시(proxy) 서버란 클라이언트와 서버 사이에 위치하여 서버 대신 클라이언트의 요청을 받는 중개 서버를 의미한다. 클라이언트 입장에서 프록시 서버는 서버 역할을 하는 반면, 서버 입장에서 프록시 서버는 클라이언트 역할을 한다. 프록시 서버는 클라이언트의 요청을 받아 처리하므로 서버와 동일하게 요청에 대한 HTTP 연결 커넥션을 직접 처리하고 요청에 대한 적절한 응답을 반환하도록 구성해야 한다.
프록시라는 용어는 클라이언트와 서버 사이에서 중개한다는 것을 의미할 뿐 프록시 서버의 기능이 특정 기능에 한정되지는 않는다. 프록시 서버는 다음과 같이 다양한 역할을 수행한다.
- 캐싱
- 트래픽 라우팅: 부하 분산(로드 밸런싱),
- 트래픽 감시
- 데이터 변환 (트랜스코딩): 데이터 포맷 변환, 데이터 압축, 데이터 필터링, 정적 콘텐츠 리소스 오리진 변환 등
- 보안 향상: 데이터 접근 제한, 트래픽 차단
- 서버 성능 향상
일반적으로 프록시 서버는 한 개 이상의 클라이언트의 요청을 동시에 받는 퍼블릭(public) 프록시 서버를 의미한다. 개인 정보 보호나 접근 제한 우회 등을 위해 로컬 컴퓨터에 설치하여 사용하는 프록시를 프라이빗(private) 프록시라고 한다.
SSL 오프로딩
정적 콘텍츠 처리
연결 수 제한
요청 마다 연결을 새롭게 생성할 수 없으므로 HTTP의 연결 지속(keep-alive) 기능을 통해 연결을 유지하고 일련의 요청과 응답 처리를 하는 것이 필요하다. 동일한 클라이언트에 대해서는 연결 지속 기능을 사용하여 연결을 위한 리소스를 재사용할 수 있지만 클라이언트 수가 매우 많은 경우 대량의 연결 생성이 필요하다.
WAS의 톰캣의 AJP 커넥터와 HTTP 커넥터
Comments