• 负载均衡 Session共享机制


    一般负载均衡内容有两种形式,一种是静态,另一种是动态,动态网站内容就可能需要进行交互,那么就涉及到session共享的问题。默认PHP是将session存储在LocalDisk,如果是多台php主机之间进行负载,那么该如何共享session?今天我们就解决这个问题。

    session会话共享文件有很多种方式:

    分布式文件共享;NFS,NAS文件存储等。

    Nginx负载均衡ip_hash模块,固定访客到后端某台服务器。

    将session存储到数据库中;例如MySQL,Memcached,Redis,Mongodb等。

    我个人比较倾向于将session存储到Redis数据库,用这种方式来同步session共享,不仅不会加大数据库的负担,而且安全性比cookie更高,把session放到内存里面,比从磁盘文件中读取会快很多。“有人认为;那我把所有的缓存软件都安装,速度岂不是更快,那就不是缓存加速了,而演变成了缓存库了”。

    php语言脚本默认不支持对Redis的操作,所以需要安装第三方phpRedis扩展模块,让其支持对Redis的操作,至于如何安装使用phpRedis,可以参考我前面写的文章《phpRedis扩展模块安装配置使用》。此外这里还需要一台Redis服务器,请参阅《LinuxCentos7 Redis 3.2.9 源码编译安装配置》。

    1.修改PHP配置文件php.ini将session存储到Redis中。

    # vim /usr/local/php/etc/php.ini
    
    session.save_handler = files
    ;session.save_path = "N;/path"
    

      


    修改为:
    # vim /usr/local/php/etc/php.ini
    
    session.save_handler = files
    ;session.save_path = "N;/path"

    ;如果Redis有密码连接方式
    session.save_path = “tcp://10.10.204.66:6379?auth=password”
     
    
     

    2.重启php-fpm服务生效

    # systemctl restart php-fpm
    

      

  • 相关阅读:
    文档生成器
    jenkins多分支版本备份
    jenkins发布控制版本号和同步
    py导出时段报表
    jenkins多分支回滚总结文
    jenkins单分支版本备份
    k8s多pod查询日志脚本
    php 0425
    php 0418
    php 0422
  • 原文地址:https://www.cnblogs.com/yifenghong/p/13237441.html
Copyright © 2020-2023  润新知