我正在尝试将 apache 配置为 JAVA jetty web 服务器前面的反向代理
Jetty 在本地网络上运行http://172.16.247.65:8091/美国我的配置
<VirtualHost *:80>
ServerName beta.garantovanaplatba.cz
ProxyPreserveHost On
ProxyHTMLLogVerbose On
LogLevel Info
ServerAdmin [email protected]
ServerAlias beta.gaapa.cz
ProxyPass / http://172.16.247.65:8091/gaapa/
ProxyPassReverse / http://172.16.247.65:8091/gaapa/
#ProxyHTMLEnable On
#ProxyHTMLInterp On
ProxyHTMLInterp On
ProxyHTMLURLMap /gaapa/ /
RequestHeader unset Accept-Encoding
ErrorLog /var/log/apache2/gaapa-beta-error_log
CustomLog /var/log/apache2/gaapa-beta-access_log combined
SetOutputFilter proxy-html
只是 ProxyPassReverse 不起作用 - 我提交 POST 后有一个页面重定向 - 直接访问导致
302 FOUND with LOCATION http://172.16.247.65:8091/gaapa/action/3383380055511613440/show
而代理访问会导致
302 FOUND with LOCATION http://beta.garantovanaplatba.cz/gaapa/action/3383380055511613440/show
但是代理服务器上没有上下文路径 gaapa(它通过代理重新转换为 /gaapa/gaapa/ 访问) - 这到底为什么不起作用?
答案1
ProxyPreserveHost On --> Off
Jetty 正在根据此标头创建重定向,因此它是直接来自 jetty 的 beta.garantovanaplatba.cz,而 ProxyPassReverse 无法与其匹配!