nginx负载均衡会话保持
- 什么是会话保持?
- 实现会话保持有哪些方法?
- 推荐
- 不推荐
- nginx+php实现redis 会话保持
什么是会话保持?
会话保持就是固定用户的请求节点。 因为负载均衡的调度机制是轮询调度,所以会导致请求分散在不同节点,如果用户通过A请求,那么下次可能是B,这样会导致用户失去上一次请求的记录,重新建立请求。 这种称之为会话中断,那么要解决问题,就需要会话保持。
实现会话保持有哪些方法?
推荐
- cookie植入来解决 会话中断的问题,就给来访的用户标记一个cookie字符串,鉴定身份,后续请求根据cookie来判断 往哪个节点分配;Haproxy中有这种算法
- 会话共享,缓存会话到内存数据库。使用redis,memcached实现。
不推荐
- 粘性会话=ip_hash 会造成某一节点压力过大,负载不均衡,不推荐。
- 会话复制,每次会话发生变化就像会话同步到其他服务器,保证会话不中断。不推荐
- 会话持久化,就是会话存储在数据库中,存在数据库占用大量资源,还要定时清理。不推荐
nginx+php实现redis 会话保持
- 在客户端下载phpmyadmin(php实现redis的工具) phpmyadmin方网站
- 解压到指定目录后建议为phpmyadmin创建软连接,这样版本更替可以直接替换。
- 修改文件名并修改连接本机redis的host地址。
cp cp /code/phpmyadmin/config.sample.inc.php /code/phpmyadmin/config.inc.php
vim /code/phpmyadmin/config.inc.php将host改为redis的本地ip地址

- 确认节点服务内 该目录的用户身份
ll -d /var/lib/php/session/5.在服务端下载redis,并修改配置文件
- yum install epel-release (如果没有则先添加仓库,如果有则从第二步开始执行。)
- yum install redis -y
- vim /etc/resdis.conf 修改监听==(listen)==地址,修改为 本机的本地ip,也可以在后面添加。
- 加入开机自启。
- 启动redis
- 查看运行端口 netstat -lntp
- 在客户端配置php连接redis
vim/etc/php.d/redis.ini 复制下图的两行到 vim/etc/php.ini

vim/etc/php.ini

- vim /etc/php-fpm.d/www.conf 翻到最下面
- 有几台客户端就要配置几台相同的配置。
- 在redis服务器连接 连接 redis服务
redis-cli 进入redis
keys * 查看会话缓存
















