【问题标题】:Apache ProxyPassReverseCookiePath does not work on second application instanceApache ProxyPassReverseCookiePath 不适用于第二个应用程序实例
【发布时间】:2012-11-14 07:00:52
【问题描述】:

我在 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 末尾不需要斜杠(“/”)即可访问第二个。我实在想不通这里出了什么问题,希望有人能帮忙。

【问题讨论】:

    标签: apache session tomcat cookies reverse-proxy


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-20
      • 2019-01-25
      相关资源
      最近更新 更多