我在Tomcat中有两个相同的Web应用程序实例,由Apache的反向代理提供。第一个工作正常,但第二个有从会话中获取数据的问题(空指针异常)。 ProxyPassReverseCookiePath显然配置错误。
这是我的配置:
<IfModule proxy_module>
<IfModule proxy_http_module>
#
# Reverse Proxy
#
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /app1/ http://localhost:8080/localapp1/
ProxyPassReverse /app1/ http://localhost:8080/localapp1/
ProxyPassReverseCookiePath /localapp1 /app1/
ProxyPass /app2 http://localhost:8080/app2
ProxyPassReverse /localapp2 http://localhost:8080/app2
ProxyPassReverseCookiePath /app2 /app2
<Location /app1/ >
RequestHeader edit X-GWT-Module-Base ^(.*)/app1/(.*)$ $1/localapp1/$2
</Location>
<Location /app2 >
RequestHeader edit X-GWT-Module-Base ^(.*)/app2(.*)$ $1/app2$2
</Location>
</IfModule>
</IfModule>
我希望第二个可以访问,而不需要URL末尾的斜杠(“/”)。我真的无法弄清楚这里有什么问题,希望有人可以提供帮助。
答案 0 :(得分:1)
以下配置是您真正想要的吗?
ProxyPass /app2 http://localhost:8080/app2
ProxyPassReverse /localapp2 http://localhost:8080/app2
ProxyPassReverseCookiePath /app2 /app2
proxyPass和ProxyPassReverse配置不匹配。 基于localapp1,您的后端路径可能应该是localapp2。 以下对我来说更有意义:
ProxyPass /app2 http://localhost:8080/localapp2
ProxyPassReverse /app2 http://localhost:8080/localapp2
ProxyPassReverseCookiePath /localapp2 /app2