更改反向代理中的上下文路径通常是解决问题的方法。假设这是问题,您有两个选择。
通过将MyApp.war重命名为ROOT.war(如果将MyApp目录重命名为ROOT,则将其命名为ROOT),将您的应用程序部署为Tomcat上的ROOT应用程序。
启动一个合适的工具来查看HTTP标头和内容(Wireshark,FireBug,ieHttpHeaders等-选择一个适用于您和您的环境的标头),并找到所有需要更改且未更改路径的位置。使用mod_headers和mod_substitute(或等效项)在反向代理中进行必要的更改。
就我个人而言,我总是选择1,因为它更容易,更快捷,更容易且更不容易出错。当我坚持要不得不在反向代理中更改上下文路径时,我花了很多天来帮助客户调试问题。
为什么会这样?
当反向代理中的上下文路径更改时,可能需要在许多地方更改该路径:
- 从用户代理收到的请求URL
- 后端服务器返回的重定向位置
- 网页链接的URL
- 应用程序(或应用程序正在使用的库)设置的自定义HTTP响应标头
- cookie路径
ProxyPass处理1
ProxyPassReverse处理位置,内容位置和URI标头(2)
ProxyPassReversecookiePath处理5
mod_proxy无法处理情况4或情况5,因为这很难解决。您最终必须根据情况编写一些非常仔细的正则表达式才能获得所需的结果。
我怀疑flashAttributes使用的是包含路径的自定义HTTP标头,这就是为什么它们不起作用的原因。该会话将正常运行,因为该会话通常由会话cookie管理,并且您已配置ProxyPassReversecookiePath。



