ProxyPassReverse对位置

时间:2017-12-13 17:04:53

标签: apache tomcat

我的后端Tomcat服务器使用相对路径发送302重定向。

HTTP/1.1 302 
Date: Wed, 13 Dec 2017 16:55:05 GMT
Server: Apache TomEE
Location: /StoreWeb/catalog/cotton-shirts
Content-Length: 0

我在Apache中有这种反向代理设置。

ProxyPass /catalog/ http://localhost:8080/StoreWeb/catalog/
ProxyPassReverse /catalog/ http://localhost:8080/StoreWeb/catalog/

但这对Location标头没有任何影响。 Apache保持不变。我怎样才能进行Apache转换:

Location: /StoreWeb/catalog/cotton-shirts

要:

Location: /catalog/cotton-shirts

2 个答案:

答案 0 :(得分:0)

作为ProxyPass的一部分执行网址重写是一个坏主意™。您应该在Tomcat中将您的webapp部署在与您想要将其安装到URL空间相同的URL下,并且您将永远不会遇到任何这些问题。

如果您 设法重新编写Location标题中的网址,我认为您会发现必须重新编写所有网址中的所有网址StoreWeb应用程序动态生成的页面。一旦你修复了这些,你会发现cookie的路径错误。而且。等等。

只需在相同的网址路径上部署您的应用,您的生活将变得无比轻松。

答案 1 :(得分:0)

我遇到了同样的问题,并通过以下配置解决了:

ProxyPass /path1 http://server2/path2
ProxyPassReverse /path1 http://server2/path2
ProxyPassReverse /path1 /path2

不过,我不确定这是“最佳做法”