基于文件的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...

猜你喜欢

华为安卓手机访问电脑共享文件,无需安装三方APP

华为安卓手机访问电脑共享文件,无需安装三方APP

在电脑上下载了不少电影,以前想在手机看的方法是 1、USB拷贝到手机或用微信文件助手转到手机 2、搭建内网流媒体服务器,把电影放到内网服务器上,通过浏览器访问内网 一直没有买NAS,那玩意贵,以前也...

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

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

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

Stable Diffusion的easynegative插件

Stable Diffusion的easynegative插件

有时候看到很多画图的负向词中会有“easynegative”这个单词,这是一个通用的负面模型,把一些常用的不需要AI画的东西全部集成进来了,除非你的负向词面面俱到,不然这个插件还是很有用的。 这是使...

nginx图片不存在时以200状态码返回默认图片

这个场景主要是有些图片可能删除了,会在页面是出现叉叉。 可以通过nginx的404方式,设置返回默认图片,优化用户体验。 location ~ \.(jpg|gif|jpeg|png|txt)$ { ...

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

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

让linux的history记录时间 ip 用户等

修改一下,使这个日志能记录 时间 ip 用户等。 vim /etc/profile 追加 USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed...