ProxyPassReverse 지시문의 사용법


8

apache.org의 정의에 따르면 :

이 지시문을 통해 Apache httpd는 HTTP 리디렉션 응답의 Location, Content-Location 및 URI 헤더에서 URL을 조정할 수 있습니다. 이는 리버스 프록시 뒤에있는 백엔드 서버에서 HTTP 경로 재 지정으로 인해 리버스 프록시를 우회하는 것을 피하기 위해 Apache httpd가 리버스 프록시 (또는 게이트웨이)로 사용될 때 필수적입니다.

위에서 구체적으로 언급 한 HTTP 응답 헤더 만 다시 작성됩니다. Apache httpd는 다른 응답 헤더를 다시 쓰지 않으며 기본적으로 HTML 페이지 내에서 URL 참조를 다시 쓰지 않습니다. 이는 프록시 콘텐츠에 절대 URL 참조가 포함 된 경우 프록시를 무시 함을 의미합니다. 프록시와 일치하도록 HTML 내용을 다시 쓰려면 mod_proxy_html을로드하고 활성화해야합니다.

path는 로컬 가상 경로의 이름입니다. url은 원격 서버의 부분 URL입니다. 이 매개 변수는 ProxyPass 지시문과 동일한 방식으로 사용됩니다.

누군가 어떻게 작동하는지 설명해 주시겠습니까? 일반적으로이 지시어는 무엇을합니까?

답변:


8

실제로 요청을 처리하는 서버가 해당 서버의 다른 URL로 리디렉션하는 경우 ProxyPassReverse지시문은 리버스 프록시 서버의 관점에서 URL을 다시 씁니다. 예를 들어, Apache documentation에 명시된 바와 같이 ,

 http://reverseproxy.com/mirror/foo/bar

로 전송 (역 프록시)

 http://backend.example.com/bar

처리를 위해 백엔드 서버에서 올바른 URL이 있어야합니다 quux. 즉, 요청을

 http://backend.example.com/quux

ProxyPassReverse지시어 (역방향 프록시에서) URL를 다시 쓰는

 http://reverseproxy.com/mirror/foo/quux

클라이언트로 HTTP 리디렉션 응답을 전달하기 전에. 이 방법으로 클라이언트는 리버스 프록시 서버에 대해서만 알고 있지만 올바른 URL에 대한 요청을 http://reverseproxy.com/mirror/foo/quux백엔드 서버로 리버스 프록시하여 정상적으로 처리 할 수 ​​있습니다. 즉, 리버스 프록시가 HTTP 리디렉션 응답에서 올바른 URI 헤더를 리턴 할 수 있습니다.


does a redirect실제로 무엇 을 의미 하는지 는 확실하지 않습니다 . HTTP 리디렉션 응답 (301/302)으로 응답합니까?
Chris Stryczynski

"3xx (리디렉션) 클래스의 상태 코드 클래스는 요청을 이행하기 위해 사용자 에이전트가 추가 조치를 취해야 함을 나타내므로 일부 3xx 코드로 응답합니다." 리디렉션에 대한 RFC 7231을 참조하십시오 . 이 ProxyPassReverse지시문은 단순히 3xx HTTP 응답에 리버스 프록시 서버 측면에서 올바른 URI가 포함되도록합니다.
Colt

0

로부터 아파치 2.4 리버스 프록시 가이드 :

백엔드에서 생성 된 Location : 헤더가 역방향 프록시를 가리 키도록 수정되지 않고 ProxyPassReverse 지정 문이 가장 자주 필요합니다.

ProxyPass "/" " http://www.example.com/ "

ProxyPassReverse "/" " http://www.example.com/ "

Origin과 실제 작업 (응답 생성)을 수행하고 Proxy가 Origin에 프록시를 요청하는 2 개의 서버 (프록시 및 오리진)가있는 경우 서버 아키텍처는 다음과 같습니다.

  1. 오리진은 프록시에 대해 모른다
  2. 그리고 모든 요청은 프록시를 통해 이동합니다.

원산지는 프록시에 대해 알고하지 않는 경우가 있습니다 원산지 가리키는 프록시를 통해 클라이언트 HTTP를 리디렉션 (HTTP 301 또는 302) 반환 일이 직접 자체, 원산지를. 브라우저가 다음 라운드에서 Origin에 직접 연락하여 포인트 2를 위반하기 때문에 문제가됩니다.

HTTP 리디렉션 응답이 클라이언트쪽으로 프록시로 되돌아 갈 때 프록시는 위치가 여전히 프록시를 가리 키도록 해당 리디렉션을 수정 / 수정해야합니다. 이런 방식으로 프록시를 인식하지 못하는 Origin에서 실행되는 독립형 응용 프로그램은 프록시가 제대로 구성되어있는 한 리디렉션 URL을 생성 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.