Nginx反向代理tomcat,很是方便,但是也有些细节的问题需要注意;今天遇到了这样一个问题,tomcat中路径“host/web1”,nginx中直接“host/”代理,这时候session就无法正常进行了。
1 2 3 4 5 6 7 8 9 | location / { proxy_pass http: //192 .168.1.12:11080 /v1/ ; proxy_set_header Host $host; proxy_set_header Remote_Addr $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } |
而后检查是由于cookies path问题导致,阅读官方资料中显示proxy_cookie_path,遂调整
1 2 3 4 5 6 7 8 9 | location / { proxy_pass http: //192 .168.1.12:11080 /v1/ ; proxy_cookie_path /v1/ /; proxy_set_header Host $host; proxy_set_header Remote_Addr $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } |
测试一切正常。
一开始以为是程序的问题,但是在本机测试都是OK,本机与线上的环境只差一个代理。
花了3-4小时,就一段proxy_cookie_path /v1
/
/;配置就搞定/晕