本文主要是介绍nginx反向代理配置多个后端服务时的session问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天在部署nginx的时候出现了一个问题:
当nginx中中只部署一个后端服务的时候可以正常登录,但是当部署两个后端服务的时候,就会出现登录失败的问题。
一开始查询,从控制台查看,登录用户名传了个乱码过去,从而设置了charset属性,但是还是登录不上去。但将负载均衡的配置减少到一个后端服务的时候就能正常登录使用。这就有可能是session同步的问题。后来发现了问题的本质所在:是session的问题。
nginx的负载均衡默认是以轮询的方式进行,每一次请求都会被分配到不同的服务器。从而导致在不同的服务器之间session不同步而出现问题。
解决办法:1.在server{.....}块中增加:ip_hash;设置nginx将同一次会话的request请求转发给同一个后端服务,这样就解决了。
2.在所有的后端服务器上做session同步。
这篇关于nginx反向代理配置多个后端服务时的session问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!