基于文件的php跨机房session同步方案

场景:
公司网站接入CDN, CDN有两个回源后端做负载均衡以及故障转移,经过测试,CDN的回源是按权重比例轮询的。
要解决用户session状态在不同后端回源时不丢失,造成重复登录。

解决方案:
session文件的同步

实施步骤


1、设置php session保存目录session.save_path = "/php_session"
mkdir /php_session
chown www:www /php_session/


2、安装部署 inotify

3、编写同步脚本
#!/bin/bash
/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format  '%T %w%f %e' --event modify,delete,create,attrib  /php_session | while read  date time file event
do
        rsync --chown=www:www --chmod=600 -a -e 'ssh -p 35389 -P ' $file  root@192.168.10.3:/php_session/ > /dev/null
done


技术要点

rsync --chown=www:www --chmod=600
将文件同步出去后,在目标机器上执行 同步文件的 所有者 与权限

4、定时任务增加守护脚本
#!/bin/sh
pid=(`ps -ef|grep moni|awk '{print $0}'`)
has=false
for info in ${pid[@]};
do
        if [ $info == '/shell/monitor_tmp.sh' ]; then
                has=true
        fi
done
if [ $has == false ];then
        /shell/monitor_tmp.sh &
        echo "run script!"
fi

相关推荐

基于文件的php跨机房session同步方案

场景: 公司网站接入CDN, CDN有两个回源后端做负载均衡以及故障转移,经过测试,CDN的回源是按权重比例轮询的。 要解决用户session状态在不同后端回源时不丢失,造成重复登录。 解决方案: s...

猜你喜欢

基于文件的php跨机房session同步方案

场景: 公司网站接入CDN, CDN有两个回源后端做负载均衡以及故障转移,经过测试,CDN的回源是按权重比例轮询的。 要解决用户session状态在不同后端回源时不丢失,造成重复登录。 解决方案: s...

mysql运维日常命令大全

学习不仅需要投入时间和成本,更重要的是通过大量实践来达到精通的境界。在日常工作和学习中,我们需要掌握的技能繁多,因此,首先应该掌握常用技能,再选择一个感兴趣的领域进行深入学习,从而在保证时间效益的同时...

基于http-x-forward的nginx并发限制与拦截屏蔽

网站经常被扫描工具,列表爬虫,导致服务器性能开销很大,有些恶意的刷网站,经常导致服务器负载过高。 因为使用了CDN加速,以前基于IP地址的频率限制,拦截,防火墙拦截都无效了。 必须使用基于http-x...

使用acme.sh实现服务器ssl证书自动签发续签

使用acme.sh实现服务器ssl证书自动签发续签

工具介绍 acme.sh是一个实现从letsencrypt 自动签发证书,自动更新续签证书的脚本。 大致了解流程之后,使用还是相对简单的。 (1)工具自己生成必要的ssl申请文件,无需干预 (2)设...

如何在python整合包使用pip安装更多依赖

如何在python整合包使用pip安装更多依赖

本次想在GPT-SoVITS-v2-240821整合包中安装一个flask,大致步骤如下 (1)在cmd下切换到 GPT-SoVITS-v2-240821目录中, (2)运行命令 "E:\GPT-S...

源格式转换 txt转m3u 在线工具及源码

源格式转换 txt转m3u 在线工具及源码

一般txt转m3u指的是不同播放器的源格式转换,而txt和m3u是两种流行的格式。 一般txt格式如下: 节目名称,节目URL 一般m3u格式如下: EXTINF:-1,节目名称 节目URL 有些节...