[proxy] 프록시 서버와 리버스 프록시 서버의 차이점은 무엇입니까?

프록시 서버와 리버스 프록시 서버의 차이점은 무엇입니까?



답변

이전 답변은 정확했지만 너무 간결했습니다. 몇 가지 예를 추가하려고합니다.

우선, “프록시”라는 단어는 누군가 또는 다른 누군가를 대신하여 행동하는 것을 의미합니다.

컴퓨터 영역에서 우리는 다른 컴퓨터를 대신하여 작동하는 한 서버에 대해 이야기하고 있습니다.

내게 필요한 옵션의 목적을 위해 토론을 웹 프록시로 제한하지만 프록시 아이디어는 웹 사이트에만 국한되지 않습니다.

앞으로 프록시

웹 프록시에 대한 대부분의 논의는 “전달 프록시”로 알려진 프록시 유형을 나타냅니다.

이 경우 프록시 이벤트는 “전달 프록시”가 원래 요청자를 대신하여 다른 웹 사이트에서 데이터를 검색하는 것입니다.

3 대의 컴퓨터 이야기 (1 부)

예를 들어, 인터넷에 연결된 세 대의 컴퓨터를 나열하겠습니다.

  • X = 컴퓨터 또는 인터넷의 “클라이언트”컴퓨터
  • Y = 프록시 웹 사이트 proxy.example.org
  • Z = 방문하려는 웹 사이트, www.example.net

일반적으로 하나는 X --> Z.

그러나 일부 시나리오에서는 다음과 같이 체인 Y --> Z을 대신 하는 것이 좋습니다 .XX --> Y --> Z

X가 정방향 프록시 서버를 사용하려는 이유 :

정방향 프록시 서버의 (매우) 부분 사용 목록은 다음과 같습니다.

  • 1) X는 Z에 직접 액세스 할 수 없으므로

    • a) X인터넷 연결을 통해 관리 권한을 가진 사람이 사이트에 대한 모든 액세스를 차단하기로 결정했습니다 Z.

      • 예 :

        • 스톰 웜 바이러스는 사람들을 방문하도록 familypostcards2008.com유도하여 확산되어 시스템 관리자가 사이트에 대한 액세스를 차단하여 사용자가 실수로 자신을 감염시키는 것을 방지합니다.

        • 대기업의 직원이 너무 많은 시간을 낭비하고 facebook.com있기 때문에 경영진은 업무 시간 동안 액세스가 차단되기를 원합니다.

        • 지역 초등학교는 playboy.com웹 사이트에 대한 인터넷 액세스를 허용하지 않습니다 .

        • 정부는 뉴스 게시를 제어 할 수 없으므로와 같은 사이트를 차단하여 뉴스에 대한 액세스를 대신 제어합니다 wikipedia.org. TOR 또는 FreeNet을 참조하십시오 .

    • b) 관리자 Z가 차단했습니다 X.

      • 예 :

        • Z의 관리자는 X로부터의 해킹 시도를 발견하여 X의 IP 주소 (및 / 또는 netrange)를 차단하기로 결정했습니다.

        • Z는 포럼 웹 사이트입니다. X포럼을 스팸하고 있습니다. Z는 X를 차단합니다.

프록시 재발급

3 대의 컴퓨터 이야기 (2 부)

이 예에서는 인터넷에 연결된 세 대의 컴퓨터를 나열합니다.

  • X = 컴퓨터 또는 인터넷의 “클라이언트”컴퓨터
  • Y = 리버스 프록시 웹 사이트 proxy.example.com
  • Z = 방문하려는 웹 사이트, www.example.net

일반적으로 하나는 X --> Z.

그러나 일부 시나리오에서는 관리자가 Z직접 액세스를 제한하거나 허용하지 않고 방문자가 Y를 먼저 통과하도록하는 것이 좋습니다. 따라서 이전과 Y --> Z마찬가지로을 대신하여 데이터를 검색하고 X있으며 다음과 같은 체인이 있습니다 X --> Y --> Z.

이번에는 “전달 프록시”와 다른 점은 사용자 X는 자신이 액세스 Z하고 있음을 알기 때문 X입니다 Y. 서버 Z는 클라이언트에게 보이지 않으며 리버스 프록시 만 Y외부에서 볼 수 있습니다. 리버스 프록시는 클라이언트 측에 프록시 구성이 필요하지 않습니다.

고객 X은 자신과 통신하고 있다고 생각 하지만 Y( X --> Y) 현실은 Y모든 통신 을 전달하는 것입니다 ( X --> Y --> Z다시).

Z가 리버스 프록시 서버를 설정하려는 이유 :

  • 1) Z는 웹 사이트의 모든 트래픽이 Y를 먼저 통과하도록하고 싶습니다.
    • a) Z에는 수백만 명의 사람들이보고 싶어하는 대규모 웹 사이트가 있지만 단일 웹 서버가 모든 트래픽을 처리 할 수는 없습니다. 따라서 Z는 많은 서버를 설정하고 인터넷에 리버스 프록시를 설정하여 사용자가 Z를 방문하려고 할 때 가장 가까운 서버로 사용자를 보냅니다. 이는 CDN (Content Distribution Network) 개념의 작동 방식의 일부입니다.
  • 2) Z의 관리자는 서버에서 호스팅되는 콘텐츠에 대한 보복에 대해 걱정하며 주 서버를 공개적으로 공개하고 싶지 않습니다.
    • a) “캐나다 약국 (Canadian Pharmacy)”과 같은 스팸 브랜드의 소유자는 수천 대의 서버를 보유하고 있지만 실제로는 대부분의 웹 사이트가 훨씬 적은 수의 서버에 호스팅되어있는 것으로 보입니다. 또한 스팸에 대한 악용 불만은 주 서버가 아닌 공용 서버 만 종료합니다.

위 시나리오에서 Z를 선택할 수 있습니다 Y.

게시물의 주제로 연결되는 링크 :

컨텐츠 전달 네트워크

정방향 프록시 소프트웨어 (서버 측)

HTTP 용 리버스 프록시 소프트웨어 (서버 측)

TCP 용 리버스 프록시 소프트웨어 (서버 측)

또한보십시오:


답변

한 쌍의 간단한 정의는 다음과 같습니다.

전달 프록시 : 요청자 (또는 서비스 소비자)를 대신하여 행동

리버스 프록시 : 서비스 / 콘텐츠 제작자를 대신하여 행동합니다.


답변

아래 다이어그램이 매우 유용하다는 것을 알았습니다. 인터넷을 통한 클라이언트에서 서버 로의 순방향역방향 프록시 설정 아키텍처를 보여줍니다 . 이 이미지는 qyb2zm302의 답변 과 다른 답변을 더 잘 이해하는 데 도움이됩니다 .

정방향 프록시 대 역방향 프록시

F5DevCentral 에서이 비디오 를 볼 수도 있습니다Peter Silva .

사진 출처 : Quora . 그러나 Martijn Pieters에 따르면이 이미지는 Pulse Secure Community 또는 Julien Pauli 사이트 에서 가져온 것일 수 있습니다. developpez.com (프랑스어)에서 .

그것은 고전 속담을 생각 나게했다.

그림은 1000 단어의 가치가 있습니다.


답변

정방향 프록시 대 역방향 프록시 (2012)는 의 차이점을 매우 명확하게 설명합니다.

qyb2zm302 님의 답변 은 프록시의 응용 프로그램을 훌륭하게 자세히 설명하지만 정방향 및 역방향 프록시 간의 기본 개념에 대해 설명합니다. 리버스 프록시의 경우 X → Y → Z, X는 Z가 아닌 Y에 대해 알고 있습니다.

프록시는 단순히 커뮤니케이션을위한 중개인입니다 (요청 + 응답). 클라이언트 <-> 프록시 <-> 서버

  • 클라이언트 프록시 : ( client <-> proxy ) <-> server

프록시는 클라이언트를 대신하여 작동합니다. 클라이언트는 체인에 관련된 세 가지 머신에 대해 알고 있습니다. 서버는 그렇지 않습니다.

  • 서버 프록시 : 클라이언트 <-> ( 프록시 <-> 서버 )

프록시는 서버를 대신하여 작동합니다. 클라이언트는 프록시에 대해서만 알고 있습니다. 서버는 전체 체인을 알고 있습니다.

전진후진 은 단순히 클라이언트서버 프록시에 대해 혼란스럽고 관점에 의존하는 이름 인 것 같습니다 . 나는 명백한 의사 소통을 위해 전자를 후자에게 버릴 것을 제안한다.

물론, 문제를 더 복잡하게하기 위해 모든 머신이 클라이언트 나 서버 만있는 것은 아닙니다. 상황이 모호한 경우 프록시가있는 위치와 터널링하는 통신을 명시 적으로 지정하는 것이 가장 좋습니다.


답변

일부 다이어그램이 도움이 될 수 있습니다.

전달 프록시

전달 프록시

리버스 프록시

리버스 프록시


답변

차이점은 주로 배포에 있습니다. 웹 전달 및 역방향 프록시는 모두 동일한 기본 기능을 갖습니다. 다양한 형식의 HTTP 요청에 대한 요청을 수락하고 일반적으로 오리진 또는 연락 서버에 액세스하여 응답을 제공합니다.

완전한 기능을 갖춘 서버에는 일반적으로 액세스 제어, 캐싱 및 일부 링크 매핑 기능이 있습니다.

정방향 프록시는 클라이언트 컴퓨터를 구성하여 액세스하는 프록시입니다. 클라이언트는 프록시 기능 (리디렉션, 프록시 인증 등)에 대한 프로토콜 지원이 필요합니다. 프록시는 사용자 환경에는 투명하지만 응용 프로그램에는 투명하지 않습니다.

리버스 프록시는 웹 서버로 배치되고 웹 서버처럼 작동하는 프록시입니다. 단, 프로그램 및 디스크의 컨텐츠를 로컬로 작성하는 대신 요청을 원래 서버로 전달합니다. 클라이언트의 관점에서 그것은 이다 사용자 경험을 완전히 투명하므로, 웹 서버.

실제로 단일 프록시 인스턴스는 서로 다른 클라이언트 모집단에 대해 정방향 및 역방향 프록시로 동시에 실행될 수 있습니다.


답변

프록시 : 클라이언트를 대신하여 요청합니다 . 따라서 서버는 응답을 프록시에 반환하고 프록시는 응답을 클라이언트에 전달합니다. 실제로 서버는 클라이언트가 누구인지 (클라이언트의 IP 주소) “학습”하지 않습니다. 프록시 만 알 수 있습니다. 그러나 클라이언트는 본질적으로 서버로 향하는 HTTP 요청을 형식화하기 때문에 서버를 잘 알고 있지만 프록시로 전달합니다.

여기에 이미지 설명을 입력하십시오

리버스 프록시 : 서버를 대신하여 요청을 수신하고 있습니다. 요청을 서버로 전달하고 응답을 수신 한 다음 클라이언트에 응답을 리턴합니다. 이 경우 클라이언트는 실제 서버 (서버의 IP 주소)를 누구도 “학습”하지 않습니다 (일부 예외 제외). 프록시 만 알 수 있습니다. 리버스 프록시의 구성에 따라 서버는 실제 클라이언트를 알거나 알 수 없습니다.

여기에 이미지 설명을 입력하십시오