내 서버의 가상 머신에 웹 애플리케이션을 설치했습니다(둘 다 Debian 8 및 Apache2 실행). 모든 연결을 다음으로 리디렉션하기 위해 호스트에서 역방향 프록시를 사용하고 있습니다.https://webapp.domain.com가상 머신에 있는 웹앱의 내부 주소(http://192.168.100.101/웹앱) 다음 가상 호스트 구성을 사용합니다.
<IfModule mod_proxy.c>
<VirtualHost *:443>
ServerName webapp.domain.com
ServerAlias www.webapp.domain.com
SSLProxyEngine On
SSLProxyCheckPeerExpire off
SSLProxyCheckPeerCN off
SSLProxyVerify none
ProxyPass / http://192.168.100.101/webapp/
ProxyPassReverse / http://192.168.100.101/webapp/
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/webapp.domain.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/webapp.domain.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/webapp.domain.com/fullchain.pem
ServerAdmin unavailable
CustomLog ${APACHE_LOG_DIR}/vhosts/webapp_access.log combined
ErrorLog ${APACHE_LOG_DIR}/vhosts/webapp_error.log
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
</IfModule>
<Proxy *>
Order Allow,Deny
Allow from all
</Proxy>
</VirtualHost>
</IfModule>
그러나 호스트 IP의 주소에 연결하려고 하면 결국 가상 머신에 웹 애플리케이션이 표시됩니다(즉, 호스트의 공용 IP가 10.10.10.10이라고 가정하면https://10.10.10.10/아무거나가상 머신에 웹 애플리케이션을 표시합니다.
이런 일이 발생하지 않도록 하려면 어떻게 해야 합니까? 여객기의 구성 때문일까요?
답변1
내 생각엔 문제가 여기에 있는 것 같아
ProxyPass / http://192.168.100.101/webapp/
ProxyPassReverse / http://192.168.100.101/webapp/
"/"를 사용하는 모든 URL은 anotherIp/webapp/으로 이동해야 한다는 뜻입니다.
webapp을 지정하면 문제가 해결됩니다.
ProxyPass /webapp http://192.168.100.101/webapp
ProxyPassReverse /webapp http://192.168.100.101/webapp