역방향 프록시 - 프록시 패스 이해 - apache mod_proxy

역방향 프록시 - 프록시 패스 이해 - apache mod_proxy

내 Linux 서버에서 Tomcat을 실행하고 있는데 이를 위해 역방향 프록시를 사용하고 싶습니다. mod_proxy에 대한 apacha 매뉴얼을 읽은 후에 나는 Proxypass의 /path를 실제로 이해하지 못했습니다.

나는 작은 예를 든다. 내 Tomcat의 디렉토리는 /tomcat/webapp입니다. 그렇다면 다음 구성이 맞나요?:

<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ProxyRequests Off
ProxyPass /tomcat/webapp         http://127.0.0.1:8080
ProxyPassReverse /tomcat/webapp  http://127.0.0.1:8080
</VirtualHost> 

감사하겠습니다. 경험이 있는 누군가가 저를 도와줄 수 있습니다.

답변1

이론적으로 어떤 지시어를 선택하든 프록시 로 ProxyPass선택하더라도 작동합니다 .http://example.com:8080/webapp/http://example.com/foo/bar/baz/

그러나 애플리케이션이 하이퍼링크에서 절대 경로를 사용하는 경우 두 하이퍼링크 모두에서 동일한 URI 경로를 사용하는 것이 좋습니다.아파치그리고수코양이아니면 다음과 같은 문제가 생길 것입니다.이 질문. 그래서:

  • 애플리케이션이 잘 작성되었다면 즐겨찾는 URL을 선택하고 이에 맞게 Tomcat의 웹앱 배포를 조정하세요.
  • 응용 프로그램이 잘못 작성된 경우(예: 다음과 같이 하드코딩된 경로가 있는 경우)이 질문조정하다아파치하드코딩된 배포 경로에 맞게 경로를 지정합니다.

어느 쪽이든 다음을 사용해야 합니다.

ProxyPass "/path/to/webapp/" "http://127.0.0.1:8080/path/to/webapp/"

추신: 분명히 당신이 원하기 때문에두 개의 포트에서 Tomcat 실행, 웹앱에 프록시되고 있으며 해당 포트가 8443SSL을 통해 액세스된다는 것을 알려주는 것이 더 좋습니다.

<Connector port="8080"
           proxyName="example.com"
           proxyPort="80"
           redirectPort="443" />
<Connector port="8443"
           proxyName="example.com"
           proxyPort="443"
           scheme="https" secure="true" />

따라서 webapp은 포트에서 8443포트로 쓸모없는 리디렉션을 생성하지 않습니다 443.

관련 정보