nginx反向代理配置多个后端服务时的session问题

今天在部署nginx的时候出现了一个问题:

当nginx中中只部署一个后端服务的时候可以正常登录,但是当部署两个后端服务的时候,就会出现登录失败的问题。


一开始查询,从控制台查看,登录用户名传了个乱码过去,从而设置了charset属性,但是还是登录不上去。但将负载均衡的配置减少到一个后端服务的时候就能正常登录使用。这就有可能是session同步的问题。后来发现了问题的本质所在:是session的问题。

nginx的负载均衡默认是以轮询的方式进行,每一次请求都会被分配到不同的服务器。从而导致在不同的服务器之间session不同步而出现问题。

解决办法:1.在server{.....}块中增加:ip_hash;设置nginx将同一次会话的request请求转发给同一个后端服务,这样就解决了。

2.在所有的后端服务器上做session同步。

你可能感兴趣的:(日常问题解决积累,session,nginx,linux,负载均衡)