2.1 리버스 프록시 도입
리버스 프록시
리버스 프록시란 ?
장점
- HTTP 요청의 내용에 따라 L7 스위치가 하는 역할과 비슷
- 시스템 전체의 메모리 사용효율 향상
- 웹 서버가 응답하는 데이터의 버퍼링 역할
- 서버의 직접적인 IP를 숨길 수 있어서 보안상으로도 장점이 있다.


HTTP 요청 내용에 따른 시스템의 동작 제어
- URL을 보고 최종적인 처리를 각기 다른 서버에 분배할 수 있다.
예시
- /image/logo.jpg면 이미지용 웹서버
- /news면 동적 컨텐츠를 생성하는 웹 서버로
-> 로직 검사가 필요 없는 static한 파일들을 바로 응답하여 응답을 효율적으로 처리할 수 있다.
IP 주소를 이용한 제어
- IP주소와 URL에 의한 제어를 조합하여 관리자 전용 페이지에 특정 IP 주소만 접속가능하도록 제한 가능
User-Agent에 의한 제어
- 검색엔진 로봇 대응에 이용 가능
- 사용자에 대해서 캐싱하기 어려운 페이지를 봇이면 캐싱하도록 설정가능
정적 컨텐츠만을 반환하는 웹서버에 비해 동적 컨텐츠를 반환하는 AP 서버에서는 수 배에서 수십 배의 메모리를 소비한다.
- AP 서버는 클라이언트 하나의 요청에 대해 하나의 프로세스 or 스레드를 할당하여 처리한다.
- 정적 컨텐츠용 웹 서버를 활용해 AP 서버의 프로세스 or 스레드를 절약한다.
- AP 서버보다 뜨는데 비용이 적게 듦
Reverse Porxy를 구현할 수 있는 가장 간단한 방법은 CDN 서비스에 가입하는 것
웹 서버가 응답하는 데이터의 버퍼링 역할
- TCP/IP 연결 비용을 줄이기 위해 Keep-Alive 사용
- AP 서버와 Keep-Alive를 하면, 리소스가 점유당하므로, 리버스 프록시 서버와 클라이언트를 Keep-Alive로 사용
- 리버스 프록시와 AP 서버는 TCP/IP 연결이 아니니, Keep-Alive는 OFF
-> 리버스 프록시의 쓰레드는 점유당해도 상관없는가 ?
-> 그만큼 AP 서버의 자원을 늘리면 되는거 아닌가 ?
-> AP 서버의 프로세스와 쓰레드가 리버스 프록시에서 사용하는 자원보다 무거워서 그렇다고 함.