一尘不染

使用Spring MVC无法在Tomcat和Nginx proxypass中保持HTTP会话

tomcat

我正在使用Tomcat 7,并使用nginx 1.5.7作为负载平衡器(在Windows 8上)。我像这样配置nginx服务器。

server {
    listen          80;
    server_name     www.something.com something.com;
    location / {
        proxy_pass http://127.0.0.1:8080/webapp/;
    }
}

我也重定向到“主机”文件中:127.0.0.1 www.something.com

但是在登录或通过发布进行任何会话操作之后,我的webapp中没有会话保持,这就像没有会话参数一样。

顺便说一句,我试图在web.xml文件中添加

<session-config>
      <tracking-mode>COOKIE</tracking-mode>
</session-config>

但是什么都没有改变。

那么在这种状态下是什么问题呢?

感谢您的帮助。


阅读 240

收藏
2020-06-16

共1个答案

一尘不染

您已在代理(/-> /
webapp)中更改了Web应用程序的路径。通常这是一个坏主意,因为它会破坏您需要修复的一堆东西。在这种情况下,可能是cookie路径是您的直接问题。要解决此问题,您需要使用proxy_cookie_path指令。修复后,可能会发现其他问题。

实际上,最好将Web应用程序重新部署为ROOT Web应用程序,以使proxy_pass指令变为 proxy_Pass http://127.0.0.1:8080/;

2020-06-16