负载均衡集群通过配置redis方式保持会话

nginx和php安装省略
查看php redis访问支持
[root@web01 ~]# rpm -qa|grep redis
php71w-pecl-redis-3.1.6-1.w7.x86_64
##安装配置redis    10.0.0.51
[root@db01 ~]# yum install redis -y
[root@db01 ~]# sed -i '/^bind/c bind 127.0.0.1 172.16.1.51' /etc/redis.conf
[root@db01 ~]# systemctl start redis
[root@db01 ~]# systemctl enable redis
[root@db01 ~]# netstat -lntup|grep redis
查看redis中的数据:
[root@db01 ~]# redis-cli 
127.0.0.1:6379> keys *

分别将web01,web02的php应用服务器的session信息、修改存储至Redis中(/etc/php.ini)
[root@web01 ~]# vim /etc/php.ini
session.save_handler = redis
session.save_path = "tcp://172.16.1.51:6379?weight=1&timeout=2.5"
Redis有密码的配置方法
session.save_path = "tcp://172.16.1.51:6379?auth=oldboy123"    
使用;注释如下两行,
[root@web01 ~]# vim /etc/php-fpm.d/www.conf
;php_value[session.save_handler] = files
;php_value[session.save_path]    = /var/lib/php/session
重启php-fpm
[root@web01 ~]# systemctl restart php-fpm

==============注意;web02的特殊,大家可以自己跟web01一样配置=======================
php74,注意路径:
[root@web02 ~]# cat /etc/opt/remi/php74/php.d/50-redis.ini 
session.save_handler = redis
session.save_path = "tcp://db01.etiantian.org:6379?weight=1"
使用;注释如下两行,
vim /etc/opt/remi/php74/php.ini
session.save_handler = file
session.save_path = "/tmp"
使用;注释如下两行,
[root@web02 ~]# vim  /etc/opt/remi/php74/php-fpm.d/www.conf
;php_value[session.save_handler] = files
;php_value[session.save_path]    = /var/lib/php/session
systemctl restart php74-php-fpm.service
php.ini有配置session


设置 PHP 的 session 过期时间
打开 php.ini 配置文件,修改如下三个配置:
1、session.use_cookies
把这个的值设置为1,利用 cookie 来传递 sessionid
2、session.cookie_lifetime
这个代表 SessionID 在客户端 Cookie 储存的时间(秒),默认是0,代表浏览器一关闭 SessionID 就作废! 那么我们把它设置为自定义如:86400 即 1 天。
3、session.gc_maxlifetime
这个是 Session 数据在服务器端储存的时间,如果超过这个时间,那么 Session 数据就自动删除!也可以设置为 86400 即 1 天。

注意:
到了设置的时间后 gc 并不一定会工作,因为 gc 的启动是有一个概率的。
概率 = session.gc_probaility / session.gc_divisor,默认为 1/100,所以每 100 个请求过来才会有 1 次触发 gc 去工作。
————————————————


分享到:
关键词:Linux运维PHPRedis

网友留言(0 条)

发表评论