http와 https를 기반으로 mod_proxy를 ProxyPass로 구성하는 방법은 무엇입니까?


9

SSL을 사용하여 Apache Tomcat을 실행 중입니다. 리버스 프록시로 작동하는 Apache HTTP Server가 있으므로 사용자가 http : // myserver / tomcat /에 도달 하면 http : // myserver : 8080으로 전달됩니다 .

ProxyPass /tomcat/ http://myserver:8080/
ProxyPassReverse /tomcat/ http://myserver:8080/

SSL에 대해 Apache HTTP 서버를 구성 했으므로 사용자가 https : // myserver / tomcat /에 도달 하면 https : // myserver : 8443 / 으로 전달되어야합니다 .

현재 ProxyPass 및 ProxyPassReverse 구성을 사용하면 비 SSL URL로 리디렉션됩니다. 수신 요청에 따라 다른 프로토콜 및 포트로 리디렉션되도록 프록시 패스를 설정하려면 어떻게해야합니까?

즉, 누군가가 HTTPS를 통해 들어오는 경우 어떻게 내 Tomcat @ https : // myserver : 8443으로 리디렉션 할 수 있습니까?


최신 정보:

@ mike-insch

나는 시도했다 :

NameVirtualHost *:443

<VirtualHost *:80>
    ProxyPass /tomcat/ http://myserver:8080/
    ProxyPassReverse /tomcat/ http://myserver:8080/
</VirtualHost>

<VirtualHost *:443>
    ProxyPass /tomcat/ https://myserver:8443/
    ProxyPassReverse /tomcat/ https://myserver:8443/
</VirtualHost>

이제 내가 방문하면 https : // myserver / tomcat / "페이지를 찾을 수 없습니다"라는 메시지가 나타납니다. 오류 로그에 "파일이 없습니다 : / var / apache2 / htdocs / tomcat"

어느 것이 맞지만 요청이 https : // myserver : 8443 / 에서 실행되는 바람둥이로 라우팅 될 것으로 예상했습니다 .

눈에 띄게 잘못 보이지 않는 한 가상 호스트를 더 자세히 살펴볼 필요가 있다고 생각합니다.


나는 당신이 NameVirtualHost지시어 가 필요하다고 생각하지 않습니다 . 또한 <VirtualHost *:443>섹션 내에서 SSL을 활성화하려면 적절한 지시문을 추가해야합니다 .
Mike Insch

답변:


5

두 개의 독립적 <VirtualHost *:X>지시문을 통해이를 수행해야합니다 . 당신의 HTTP지시는 안으로 <VirtualHost *:80>들어가고 당신의 HTTPS지시는 안으로 들어갑니다 <VirtualHost *:443>. 서버에 여러 주소 기반 또는 이름 기반 가상 호스트가 구성된 경우 필요에 따라 조정하십시오. 자세한 내용은 Apache 2 설명서를 참조하십시오.


그래서 다음을 추가했습니다 : NameVirtualHost * : 443
codecraig

3
지시문에 SSLProxyEngine을 추가하는 것을 잊지 마십시오
Ryan

6

완벽 함 : 옵션 인 경우 Tomcat에서도 SSL을 처리하지 않고 Apache에서 SSL을 종료하는 것이 좋습니다. Tomcat 제공은 Apache에서만 액세스 할 수 있으며 더 간단하고 안전하지 않습니다.

이 설정에서 Apache는 HTTP 및 HTTPS를 http://myserver:8080/다음으로 프록시합니다 .

NameVirtualHost *:443

<VirtualHost *:80>
    ProxyPass /tomcat/ http://myserver:8080/
    ProxyPassReverse /tomcat/ http://myserver:8080/
</VirtualHost>

<VirtualHost *:443>
    ProxyPass /tomcat/ http://myserver:8080/
    ProxyPassReverse /tomcat/ http://myserver:8080/
</VirtualHost>

1
이 작업을 수행하는 경우 두 VirtualHost에서 프록시 지시문을 반복 할 필요가 없습니다. 서버 컨텍스트로 끌어 올 수 있습니다.
Amit Naidu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.