LAMP架构——nginx代理多台机器导致用户登陆异常
2018-01-09 11:19
375 查看
nginx代理多台机器导致用户登陆异常,长连接(会话保持)解决问题
网站使用程序 discuzx3 访问都正常,只有用户登陆存在异常,具体的情况是这样的:用户登陆后,会马上显示未登陆,然后刷新一下或者多下又变成了登陆中。
这个问题很显然是由于session导致,后台有多个web机器,当用户登陆后,会把登陆态session保存到当前web,但是再次发送请求时则会到另一台机器,所以原来的session信息找不到了。解决这个问题有两个思路:
1. 可以把session时时同步到另外的机器。
2. 可以让前端的调度器保持长连接,也就是说某个用户的请求在某一时间段内始终抓发到固定的一台机器上。
这两种方式,第二种更容易实现。
我使用的是nginx的代理,其中nginx有一种算法支持长连接,具体配置是这样的:
upstream test { ip_hash; server 192.168.109.5; server 192.168.109.3; }
关键代码: ip_hash
这样,nginx会把用户的请求一直转发到后端的某台机器。
相关文章推荐
- LAMP架构(nginx安装,默认虚拟主机,用户认证,域名重定向,nginx配置文件详解)
- LAMP架构——nginx针对请求的uri来代理
- LAMP架构——nginx代理--根据访问的目录来区分后端的web
- Haproxy做代理,后端nginx获取真实用户IP
- 通达OA 一用户登陆精灵却不能用即时通讯功能的异常情况处理(图文)
- LAMP架构——Apache用户认证
- 解决apache/nginx做反向代理导致request.getServerName()外网环境获取不到代理地址(或域名)的问题
- 解决apache/nginx做反向代理导致request.getServerName()外网环境获取不到代理地址(或域名)的问题
- $HOME/$user/.权限导致用户无法登陆图形界面
- $HOME/$user/.权限导致用户无法登陆图形界面
- shopex用户登陆错误提示在nginx下乱码问题
- nginx代理获取用户真实ip
- 解决apache/nginx做反向代理导致request.getServerName()外网环境获取不到代理地址(或域名)的问题
- 解决apache/nginx做反向代理导致request.getServerName()外网环境获取不到代理地址(或域名)的问题
- nginx架构(三)Nginx服务器的代理服务
- Nginx反向代理LAMP,无法上传文件,502 Bad Gateway Nginx
- 用户登陆的业务流程架构设计
- SELinux配置不当导致vsftpd系统用户不能登陆
- Oracle用户密码含有特殊字符导致无法登陆解决方法
- nginx代理web,后端无法获取用户真实IP