Apacheリバースプロキシは、すべてのアドレスを同じ仮想ホストにリダイレクトします。

Apacheリバースプロキシは、すべてのアドレスを同じ仮想ホストにリダイレクトします。

私のサーバーの仮想マシンにWebアプリケーションをインストールしました(どちらもDebian 8とApache2を実行しています)。すべての接続を次にリダイレクトするために、ホストはリバースプロキシを使用しています。https://webapp.domain.com仮想マシンのWebアプリの内部アドレス(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のアドレスに接続しようとすると、最終的に仮想マシンに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/

「/」を使用するすべてのURLは、anotherIp/webapp/に移動する必要があることを意味します。

webappを指定すると問題が解決します。

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

おすすめ記事