아파치 VirtualHost (동일한 서버에서 실행되는 아파치)를 통해 모두 제공되는 여러 웹 응용 프로그램으로 서버를 설정하려고합니다. 내 주요 제약 조건은 각 웹 응용 프로그램이 SSL 암호화를 사용해야한다는 것입니다. 인터넷 검색을 한 후 stackoverflow에 대한 다른 질문을 살펴본 후 VirtualHost에 대한 다음 구성을 작성했습니다.
<VirtualHost 1.2.3.4:443>
ServerName host.example.org
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
SSLProxyEngine On
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / https://localhost:8443/
ProxyPassReverse / https://localhost:8443/
</VirtualHost>
비록 https://host.example.org:8443가 접근, https://host.example.org는 내 가상 호스트 설정의 목적을 패배하는 없습니다. Firefox는 서버에 성공적으로 연결되었지만 연결이 중단되었다고 불평합니다. 또한 Apache의 error.log에 다음 경고가 표시됩니다.
proxy: no HTTP 0.9 request (with no host line) on incoming request and preserve host set forcing hostname to be host.example.org for uri
웹 애플리케이션 (Tomcat 서버)에서 액세스 로그에 이상한 액세스 요청이 표시됩니다.
"?O^A^C / HTTP/1.1" 302
다음은 https://host.example.org:8443에 직접 연결할 때 얻는 올바른 액세스 요청입니다 .
"GET / HTTP/1.1" 302
마지막으로 SSL을 사용하지 않으면 가상 호스트가 완벽하게 작동한다고 언급해야합니다.
이 작업을 어떻게 수행 할 수 있습니까?
ProxyPreserveHost On
거의 항상 잘못되고 쓸모없고 거의 항상 깨지는 것을 피하십시오ProxyPassReverse
. 부수적ProxyRequests off
으로 기본값이므로 중복됩니다.