맨위로가기

리버스 프록시

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

리버스 프록시는 클라이언트의 요청을 받아 하나 이상의 서버로 전달하고, 해당 서버의 응답을 클라이언트에 반환하는 서버의 일종이다. 주로 웹사이트의 성능 향상, 보안 강화, 그리고 기타 다양한 목적으로 사용된다. 리버스 프록시는 부하 분산, 캐싱, 데이터 압축, TLS 암호화, HTTP 헤더 검사 등을 수행하며, 웹 서버의 실제 IP 주소를 숨기거나 인증 기능을 추가하여 보안을 강화한다. 반면, 리버스 프록시는 암호화된 트래픽을 해독하고 재암호화해야 하므로 보안 취약점이 발생할 수 있으며, 단일 실패 지점이 될 수도 있다.

더 읽어볼만한 페이지

  • 리버스 프록시 - Nginx
    Nginx는 이고르 시소예프가 개발한 웹 서버 소프트웨어로, 높은 성능과 안정성을 바탕으로 웹 서버, 리버스 프록시, 로드 밸런서 등으로 활용되며 대규모 트래픽 처리에 강점을 보이지만, F5 Networks 인수 후 포크 프로젝트가 등장하기도 했다.
  • 리버스 프록시 - 아파치 HTTP 서버
    아파치 HTTP 서버는 아파치 소프트웨어 재단에서 관리하는 오픈 소스 웹 서버 소프트웨어로, 다양한 운영체제 지원, 모듈을 통한 기능 확장, 가상 호스팅 등의 기능을 제공하며 전 세계적으로 널리 사용된다.
  • 인터넷 구조 - 네트워크 접속 지점
    네트워크 접속 지점(NAP)은 미국에서 ISP를 연결하기 위한 인터넷 연결점 중 하나이며, 미국 과학재단이 지원하여 설립되었고, 현재는 공용 교환 설비를 제공하지만 인터넷 트래픽의 대부분은 NAP를 거치지 않고 처리된다.
  • 인터넷 구조 - 사물인터넷
    사물 인터넷은 센서와 액추에이터를 통해 주변 환경을 감지하고 제어하는 사물들이 인터넷으로 연결되어 정보를 교환하는 네트워크 시스템으로, 효율성과 편의성을 증대시키지만 개인정보 보호 및 보안과 같은 과제도 안고 있다.
  • 컴퓨터 네트워크 - NORSAR
    NORSAR는 노르웨이 셸러에 위치한 지진 연구 및 데이터 센터이며, 기초 지진학 연구, 소프트웨어 개발, 석유 산업 컨설팅 등의 활동을 수행하며, 포괄적 핵실험 금지 조약을 위한 노르웨이 국가 데이터 센터 역할을 수행한다.
  • 컴퓨터 네트워크 - 라우터
    라우터는 네트워크 간 데이터 패킷을 전달하는 네트워크 장비로, ARPANET의 IMP에서 시작하여 다양한 종류로 발전해 왔으며, 최신 네트워크 기술과 함께 네트워크의 확장성, 안정성 및 효율성을 향상시키는 데 중요한 역할을 한다.
리버스 프록시
개요
리버스 프록시 개념도
리버스 프록시 개념도
유형프록시 서버
작동 방식클라이언트가 리버스 프록시로 요청을 보내면, 리버스 프록시는 해당 요청을 백엔드 서버로 전달하고, 백엔드 서버의 응답을 받아 클라이언트에게 다시 전달함.
주요 기능로드 밸런싱
보안 강화
캐싱
SSL 암호화/복호화
상세 기능
로드 밸런싱여러 백엔드 서버에 트래픽을 분산시켜 서버 과부하를 방지하고 응답 시간을 단축함.
보안 강화클라이언트의 직접적인 접근을 차단하여 백엔드 서버를 보호함.
DDoS 공격과 같은 악성 트래픽을 필터링함.
웹 방화벽 역할을 수행하여 웹 공격을 방어함.
캐싱자주 요청되는 콘텐츠를 캐시에 저장하여 백엔드 서버의 부하를 줄이고 응답 속도를 향상시킴.
SSL 암호화/복호화SSL 연결을 종료하고 백엔드 서버와의 연결은 암호화되지 않은 상태로 유지하여 서버의 부하를 줄임.
SSL 인증서를 중앙에서 관리하여 관리 효율성을 높임.
활용 사례
웹 서버아파치, nginx 등의 웹 서버에서 리버스 프록시 기능을 제공하여 웹 사이트의 성능과 보안을 향상시킴.
CDN (콘텐츠 전송 네트워크)전 세계에 분산된 서버에 콘텐츠를 캐싱하여 사용자에게 더 빠르고 안정적인 콘텐츠 전송을 제공함.
API 게이트웨이여러 API 엔드포인트를 단일 진입점으로 통합하고 API 요청에 대한 인증, 권한 부여, 로깅 등의 기능을 제공함.
장점
성능 향상캐싱을 통해 응답 속도 향상
로드 밸런싱을 통해 서버 부하 분산
보안 강화백엔드 서버 보호
DDoS 공격 방어
웹 공격 방어
관리 효율성 증대SSL 인증서 중앙 관리
백엔드 서버 구성 변경 용이
단점
복잡성 증가구성 및 관리가 복잡해질 수 있음.
단일 실패 지점리버스 프록시 서버에 장애가 발생하면 전체 시스템에 영향을 미칠 수 있음.
같이 보기
관련 항목프록시 서버
포워드 프록시
웹 서버
로드 밸런서
CDN
API 게이트웨이

2. 용도

리버스 프록시는 다음과 같은 다양한 목적으로 활용된다.


  • 부하 분산: 대규모 웹사이트와 콘텐츠 전송 네트워크는 리버스 프록시를 사용하여 내부 서버 간의 부하 분산을 수행한다.[3]
  • HTTP 헤더 검사: 리버스 프록시는 HTTP 헤더를 검사하여 요청 URL에 따라 인터넷에 단일 IP 주소를 표시하면서 다른 내부 서버로 요청을 중계할 수 있다.
  • A/B 테스트: 애플리케이션 코드가 클라이언트에 제공되는 버전에 대한 논리를 처리할 필요 없이 A/B 테스트를 수행할 수 있다.

2. 1. 보안 강화

리버스 프록시는 원본 서버의 존재와 특성을 숨겨 웹사이트의 실제 위치 파악을 어렵게 만든다. 예를 들어 웹사이트 IP 주소가 바로 나타나지 않아 삭제 조치나 웹사이트 접근 차단과 같은 법적 조치를 시작하기 더 어려워진다.[3] 또한 리버스 프록시는 다른 법적 요구 사항이 있는 다른 관할 구역에 위치하여 삭제 과정을 더욱 복잡하게 만들 수 있다.

애플리케이션 방화벽 기능은 서비스 거부 공격(DoS) 또는 분산 서비스 거부 공격(DDoS)과 같은 일반적인 웹 기반 공격으로부터 보호할 수 있다.[3] 리버스 프록시가 없으면, 자체 사이트에서 멀웨어를 제거하거나 삭제를 시작하는 것이 어려울 수 있다.

보안 웹사이트의 경우, 웹 서버가 자체적으로 TLS 암호화를 수행하지 않을 수 있지만, 대신 TLS 가속 하드웨어를 갖춘 리버스 프록시에 해당 작업을 오프로드할 수 있다. (TLS 종료 프록시 참조.)[3]

리버스 프록시는 인증이 없는 웹 서버에 접근 인증을 추가할 수 있다.[5][6]

2. 2. 성능 향상

리버스 프록시는 정적 콘텐츠의 캐시를 유지하여 내부 서버와 내부 네트워크의 부하를 줄여준다.[3] 또한, 클라이언트와 리버스 프록시 간의 통신 채널에 데이터 압축 또는 TLS 암호화와 같은 기능을 추가할 수 있다.[3]

리버스 프록시는 여러 서버로 들어오는 요청의 부하를 분산할 수 있다. 웹 서버를 리버스 프록싱하는 경우, 각 들어오는 요청의 URL을 요청된 리소스의 관련 내부 위치와 일치하도록 다시 작성해야 할 수 있다.

리버스 프록시는 웹 캐시를 통해 정적 웹 페이지 및 동적 웹 페이지 콘텐츠를 웹 가속기로 캐싱하여 원본 서버의 부하를 줄일 수 있다. 이러한 종류의 프록시 캐시는 상당수의 웹사이트 요청을 충족할 수 있어 원본 서버의 부하를 크게 줄인다.

리버스 프록시는 HTTP 압축을 통해 콘텐츠를 압축하여 로딩 시간을 가속화함으로써 콘텐츠를 최적화할 수 있다.

"스푼 피딩" 기술에서는[4] 동적으로 생성된 페이지를 한 번에 모두 생성하여 리버스 프록시에 제공할 수 있으며, 리버스 프록시는 이를 조금씩 클라이언트에 반환할 수 있다. 페이지를 생성하는 프로그램은 열린 상태로 유지될 필요가 없으므로, 클라이언트가 전송을 완료하는 데 필요한 시간이 길어질 수 있는 동안 서버 리소스를 해제한다.

2. 3. 기타 용도

리버스 프록시는 A/B 테스트를 수행할 수 있는데, 이때 애플리케이션 코드는 클라이언트에 제공되는 버전에 대한 논리를 처리할 필요가 없다.[5] 또한 인증이 없는 웹 서버에 접근 인증을 추가할 수 있다.[6]

여러 웹 서버가 단일 공용 IP 주소를 통해 접근해야 하는 경우, 리버스 프록시가 유용하게 사용될 수 있다. 웹 서버는 동일한 컴퓨터의 서로 다른 포트나, 서로 다른 컴퓨터의 다른 로컬 IP 주소에서 수신 대기할 수 있다. 리버스 프록시는 각 요청을 분석하여 근거리 통신망 내의 적절한 서버로 전달한다.

웹 서버를 리버스 프록싱하는 경우, 요청된 리소스의 관련 내부 위치와 일치하도록 각 들어오는 요청의 URL을 다시 작성해야 할 수 있다.

"스푼 피딩" 기술에서,[4] 동적으로 생성된 페이지는 한 번에 모두 생성되어 리버스 프록시에 제공될 수 있으며, 리버스 프록시는 이를 조금씩 클라이언트에 반환할 수 있다. 이렇게 하면 페이지를 생성하는 프로그램이 열린 상태로 유지될 필요가 없어 서버 리소스를 절약할 수 있다.

3. 위험성

리버스 프록시를 사용하면 다음과 같은 위험성이 존재한다.[7]


  • 보안 취약점: 암호화된 트래픽 처리, 데이터 유출, 제로데이 취약점 등 다양한 보안 문제가 발생할 수 있다.
  • 제3자 의존성: Cloudflare, Imperva 등 외부 업체의 리버스 프록시를 사용하면 기밀성, 무결성, 가용성이 해당 업체에 의존하게 된다.
  • 단일 실패 지점: 리버스 프록시가 중단되면 여러 도메인 전체 서비스가 마비될 수 있으며, 백엔드 서버 접근이 불가능해질 수 있다.

3. 1. 보안 취약점

암호화된 전송 트래픽을 리버스 프록시가 필터링, 캐싱, 압축, 수정 또는 개선해야 하는 경우, 먼저 통신을 해독하고 다시 암호화해야 한다. 이 과정에서 리버스 프록시는 TLS 인증서와 개인 키를 소유해야 하므로, 암호화되지 않은 데이터에 접근 가능한 시스템이 늘어나 공격 대상이 될 가능성이 커진다.[7]

대부분의 외부 데이터 유출은 해커가 조직에서 의도적으로 배포한 리버스 프록시를 악용하거나, 기존 인터넷 연결 서버를 리버스 프록시 서버로 변환하는 데 성공했을 때 발생한다. 손상되거나 변환된 시스템을 통해 외부 공격자는 공격을 프록시할 위치를 지정하여 내부 네트워크 및 시스템에 접근할 수 있게 된다.[7]

회사의 내부 사용을 위해 개발된 애플리케이션은 일반적으로 공개 표준에 맞춰 강화되지 않았고, 모든 해킹 시도를 견딜 수 있도록 설계되지 않았을 수 있다. 따라서 리버스 프록시를 통해 이러한 내부 애플리케이션에 대한 외부 접근을 허용하면 의도치 않게 공격 표면이 증가하고 해커를 초청하는 꼴이 될 수 있다.[7]

리버스 프록시가 공격을 필터링하도록 구성되지 않거나, 공격 시그니처 데이터베이스를 최신 상태로 유지하기 위해 매일 업데이트를 받지 않으면, 제로데이 취약점이 필터링되지 않고 통과하여 공격자가 리버스 프록시 서버 뒤에 있는 시스템을 제어할 수 있게 된다.[7]

Cloudflare, Imperva와 같은 타사의 리버스 프록시를 사용하면 전체 기밀성, 무결성 및 가용성이 해당 타사의 손에 들어가게 된다.[7]

리버스 프록시가 여러 개의 서로 다른 도메인을 처리하는 경우, 구성 오류나 DDoS 공격 등으로 인해 중단되면 모든 처리 도메인이 다운될 수 있다.[7]

리버스 프록시는 백엔드 서버에 접근할 수 있는 다른 방법이 없는 경우, 단일 실패 지점이 될 수도 있다.[7]

3. 2. 제3자 의존성

Cloudflare, Imperva와 같은 제3자 업체의 리버스 프록시를 사용하면 전체 기밀성, 무결성 및 가용성이 해당 업체에 의존하게 된다.[7]

3. 3. 단일 실패 지점

리버스 프록시는 (예: 구성 오류 또는 DDoS 공격으로 인한) 중단으로 인해 여러 개의 서로 다른 도메인 전체가 다운될 수 있다.[7] 리버스 프록시는 백 엔드 서버에 접근할 수 있는 다른 방법이 없는 경우, 단일 실패 지점이 될 수도 있다.

4. 대한민국 관련 사례

대한민국에서는 넷플릭스, 유튜브 등 대규모 콘텐츠 제공자들이 트래픽 증가에 따라 망 사용료 부담을 줄이기 위해 리버스 프록시를 활용하고 있다. 이는 망 중립성 논쟁과 맞물려 사회적 이슈가 되기도 했다.

4. 1. 콘텐츠 전송 네트워크(CDN)

콘텐츠 전송 네트워크(CDN)에서 리버스 프록시는 내부 서버 간의 부하 분산을 위해 사용된다. 리버스 프록시는 정적 콘텐츠의 캐시를 유지하여 내부 서버와 네트워크의 부하를 줄여준다. 또한, 클라이언트와 리버스 프록시 간 통신에 데이터 압축이나 TLS 암호화 같은 기능을 추가하는 것이 일반적이다.[3]

참조

[1] 웹사이트 Forward and reverse proxies http://httpd.apache.[...] The Apache Software Foundation 2018-08-26
[2] 간행물 Nginx: the high-performance web server and reverse proxy https://dl.acm.org/d[...] 2008-09
[3] 웹사이트 Proxy servers and tunneling https://developer.mo[...] 2020-12-06
[4] 웹사이트 squid-cache wiki entry on "SpoonFeeding" http://wiki.squid-ca[...] Francesco Chemolli 2011-02-09
[5] 웹사이트 Possible to add basic HTTP access authentication via HAProxy? http://serverfault.c[...] 2016-04-27
[6] 웹사이트 forward_auth (Caddyfile directive) - Caddy Documentation https://caddyserver.[...] 2022-05-22
[7] 웹사이트 Cloudflare outage knocks out major sites and services, including Discord https://finance.yaho[...] 2020-12-14
[8] 웹인용 Forward and reverse proxies http://httpd.apache.[...] The Apache Software Foundation 2011-02-09



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com