带有ProxyPreserveHost的Apache服务器反向代理在404中的结果

时间:2018-08-10 15:09:23

标签: java apache web proxy

我希望这里有Apache经验的人能帮助我。我有一个内部服务器,我要使用Apache Reverse Proxy。即

Apache设置

<Proxy *>
        Order allow,deny
        Allow from all
</Proxy>

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]

ProxyVia Off
ProxyRequests Off
ProxyPreserveHost On

SSLProxyEngine On
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerExpire Off
SSLProxyCheckPeerName Off
SSLProxyVerify none

ProxyPass               /internal   https://www.myinternalserver.com
ProxyPassReverse        /internal https://www.myinternalserver.com

<Location />
        Allow from all
#       Require all granted
</Location>

我遇到的问题是这样的

  • 代码中的内部应用程序使用getRequest().getServerName()来获取URL。如果我关闭ProxyPreserveHost并将其设置为Off,则内部应用程序最终将返回的URL。这不是我想要的,因为公众无法访问此内部应用程序URL。
  • 根据我的阅读,ProxyPreserveHost必须为On,以便Apache Reverse Proxy可以将其URL传递给基础内部应用程序。但是,当我这样做时,我得到404。我知道可能正在发生的是内部服务器正在使用外部域来查找其应用程序,因此无法找到它。我不确定该如何解决。顺便说一句,内部应用程序托管在PCF上。

如果有人可以帮助我,我将不胜感激。

谢谢!

0 个答案:

没有答案