Apache 反向代理将每个地址重定向到同一个虚拟主机

Apache 反向代理将每个地址重定向到同一个虚拟主机

我已经在我的服务器上的虚拟机中安装了一个 web 应用程序(都运行 Debian 8 和 Apache2)。我在主机上使用反向代理将所有连接重定向到https://webapp.domain.com到虚拟机上 webapp 的内部地址 (http://192.168.100.101/webapp)使用以下虚拟主机配置:

<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 上的任何地址,我最终会在虚拟机上看到 Web 应用程序(即,假设主机的公共 IP 是 10.10.10.10,连接到https://10.10.10.10/任何东西显示虚拟机上的 web 应用程序)。

我怎样才能防止这种情况发生?难道是客机配置造成的?

答案1

我认为问题就在这里

ProxyPass / http://192.168.100.101/webapp/
ProxyPassReverse / http://192.168.100.101/webapp/

您是说每个使用“/”的网址都需要转到 anotherIp/webapp/ 。

指定 webapp 应该可以解决问题:

ProxyPass /webapp http://192.168.100.101/webapp 
ProxyPassReverse /webapp http://192.168.100.101/webapp

相关内容