Apache ProxyPassReverseCookiePath不适用于第二个应用程序实例

时间:2012-11-26 18:33:31

标签: apache session tomcat cookies reverse-proxy

我在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末尾的斜杠(“/”)。我真的无法弄清楚这里有什么问题,希望有人可以提供帮助。

1 个答案:

答案 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