Apache 代理反向传递 JAVA

Apache 代理反向传递 JAVA

我正在尝试将 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 无法与其匹配!

相关内容