nginx反向代理tomcat后,登录提示验证码错误,直接通过ip访问tomcat服务就可以
现象:
nginx反向代理tomcat后,通过域名访问,登录时提示验证码错误,直接通过ip访问tomcat服务就可以
原因:
对于一个请求,首先是通过了原始路径xxx.com,然后经过代理路径http://127.0.0.1:8080/xxx/,这个时候由于原始路径和代理路径发生了变化,从而导致session 丢失,Tomcat服务器获取到的session无效。
解决办法:
nginx配置如下:
server { listen 80; server_name xxx.com; location / { proxy_pass http://127.0.0.1:8080/xxx/; proxy_cookie_path /xxx /; } }
然后重新reload一下nginx,如此一来,就解决了nginx反向代理导致session丢失的问题。