한 단계 높은 서버 인프라 구축 ( Reverse Proxy )

Manx·2024년 12월 13일
0

Infra

목록 보기
2/3

2.1 리버스 프록시 도입

리버스 프록시

리버스 프록시란 ?

  • 리버스 프록시는 웹 서버 앞에 위치하여 클라이언트(예: 웹 브라우저) 요청을 해당 웹 서버에 전달한다.

  • WAN -> LAN의 요청을 대리한다.

    • WAN (Wide Area Network): 인터넷과 같은 넓은 범위의 네트워크를 지칭
    • LAN (Local Area Network): 회사, 집, 학교 등에서 사용되는 로컬 네트워크를 지칭
    • LAN 내부의 장치는 외부 인터넷(WAN)에 직접 노출되지 않고, 공용 IP(인터넷에 연결된 외부용 IP 주소)를 통해 WAN과 통신
  • 요청 도중 끼어들어 다양한 전후 처리를 시행할 수 있다.

장점

  • 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 서버의 프로세스와 쓰레드가 리버스 프록시에서 사용하는 자원보다 무거워서 그렇다고 함.

0개의 댓글