本文主要是介绍解决nginx使用proxy_pass反向代理时,session cookie丢失的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天在看sso(单点登录)时,看到了这篇文章,nginx反向代理解决cookie带不过去的问题,关键点是加上 proxy_cookie_path(路径转换),下面是正文:
-------------------------------------------------------------------------------------------
1. 如果只是host、端口转换,则cookie不会丢失。例如:
location /project {
proxy_pass http://127.0.0.1:8080/project;
}
通过浏览器访问http://127.0.0.1/project时,浏览器的cookie内有jsessionid。再次访问时,浏览器会发送当前的cookie。
2. 如果路径也变化了,则需要设置cookie的路径转换,nginx.conf的配置如下
location /proxy_path {
proxy_pass http://127.0.0.1:8080/project;
}
通过浏览器访问http://127.0.0.1/proxy_path时,浏览器的cookie内没有jsessionid。再次访问时,后台当然无法获取到cookie了。
详细看了文档:http://nginx.org/en/docs/http/ngx_http_proxy_module.html?&_ga=1.161910972.1696054694.1422417685#proxy_cookie_path
加上路径转换:proxy_cookie_path /project /proxy_path;
则可以将project的cookie输出到proxy_path上。正确的配置是:
location /proxy_path {
proxy_pass http://127.0.0.1:8080/project;
proxy_cookie_path /project /proxy_path;
}
————————————————
版权声明:本文为CSDN博主「go2shell」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/we_shell/article/details/45153885
这篇关于解决nginx使用proxy_pass反向代理时,session cookie丢失的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!