Apache 2의 역방향 프록시 페이지에서 참조되는 리소스의 루트 위치를 어떻게 다시 쓸 수 있습니까?

Apache 2의 역방향 프록시 페이지에서 참조되는 리소스의 루트 위치를 어떻게 다시 쓸 수 있습니까?

우리는 다음 위치에 애플리케이션 서버를 두고 있습니다.http://foo.bar.

역방향 프록시를 사용하여 http://wibble/foo를 통해 액세스해야 합니다.

이것은 내가 관리했지만 http:// foo.bar에는 /에서 참조하는 내용이 있습니다.

예:

/images/blah.jpg

그래서 대신에 http://wibble/images/blah.jpg를 얻으려고 합니다.

http://wibble/foo/images/blah.jpg

/ 에서 참조되는 항목에 /foo 접두사를 삽입하는 방법을 알고 계시나요?

답변1

mod_proxy절대HTML을 수정합니다.

위에서 특별히 언급한 HTTP 응답 헤더만 다시 작성됩니다. Apache는 다른 응답 헤더를 다시 작성하지 않으며 HTML 페이지 내에서 URL 참조를 다시 작성하지도 않습니다. 이는 프록시된 콘텐츠에 절대 URL 참조가 포함되어 있으면 프록시를 우회한다는 의미입니다. HTML 내부를 살펴보고 URL 참조를 다시 작성하는 타사 모듈은 Nick Kew의 mod_proxy_html입니다.

http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

답변2

nginx를 프런트 엔드 서버로 사용하는 경우 HttpSubModule을 사용하여 대체를 수행할 수 있습니다. 기본적으로 nginx는 요청을 프록시하고 반환된 텍스트에 대한 대체를 수행해야 합니다. 하지만 나는 백엔드에 압축이 있는 경우 이것을 사용할 수 없다고 믿습니다(따라서 프런트엔드 서버에 압축이 있는 한 괜찮을 것입니다).

기본적으로: Nginx -> Apache로 프록시 -> Nginx로 돌아가기 -> 대체 수행 -> 압축 및 제공

Apache와 다른 서버에도 유사한 모듈이 존재한다고 가정합니다.

관련 정보