CentOS下 inotify+rsync 文件实时同步&用宝塔面板自建CDN加速境外网站

  • A+
所属分类:VPS相关

系统:CentOS7

Rsync:3.1.2

Inotify-Tools:3.20.11.0

宝塔面板: Beta7.6.13

 

准备

关闭firewall防火墙,开机禁止启动。永久关闭selinux。如果有iptables防火墙则允许873端口

 

一、Rsync安装

 

一般系统都自带,使用rsync -v 查看就可以了,不需要重新安装。

注:如果想使用最新版的,把系统自带的卸载之后编译,看安装文档需要安装的扩展,不然后安装不了。

https://github.com/WayneD/rsync/releases(下载地址)

https://github.com/WayneD/rsync/blob/master/INSTALL.md(安装文档)

 

二、安装Inotify-Tools

查看当前系统是否支持inotify

出下以三个文件说明系统支持,这三个文件的作用自行百度。

CentOS下 inotify+rsync 文件实时同步&用宝塔面板自建CDN加速境外网站

https://github.com/inotify-tools/inotify-tools/releases(下载地址)

编译前请确保服务器已安装编译组件:

 

安装后命令在/usr/local/bin/目录下。

查看效果:

不停止上面的命令,重新建一个终端连接然后进入/home/文件夹进行各类操作,可以看下上面输出的结果。

CentOS下 inotify+rsync 文件实时同步&用宝塔面板自建CDN加速境外网站

注:数据备份存储的服务器不需要安装inotify-tools

例如:192.168.100.1(网站运行的服务器)、192.168.100.20(1号数据备份服务器)、192.168.100.30(2号数据备份服务器),

我们把网站服务中的数据同时同步到1号数据备份服务器、2号数据备份服务器中。

192.168.100.1需要安装inotify-tools、rsync,192.168.100.20、192.168.100.30只需要安装rsync。

192.168.100.1不需要配置rsyncd.conf,192.168.100.20、192.168.100.30需要配置rsyncd.conf。

 

1、现在操作备份服务器中配置rsyncd.conf,位置在/etc目录中,如果没有就创建一个,1号备份服务器、2号备份服务器操作一样。

在系统中创建用户:

rsyncd.conf 配置

创建密码认证文件,修改文件权限为600

 

CentOS下 inotify+rsync 文件实时同步&用宝塔面板自建CDN加速境外网站

2、修改192.168.100.1(网站运行的服务器)配置

创建rsync密码文件,修改文件权限为600

 

测试

3、rsync组合inotify-tools完成实时同步

inotify的作用,是让我们知道监控的文件夹中有变动,我们可以根据inotify输出内容,去触发rsync同步。

提示:以往使用crontab触发rsync时,我们是将rsync服务端搭建在主服务器,其他服务器去主服务器同步文件。而inotify+rsync的方式,是将rsync服务端搭建在从服务器,主服务器推送文件到从服务器,所以从服务器上的rsync配置中“read only”要配置为no,也就是“read only = no”。

inotify-tools只是个工具,并不是软件,所以要与rsync配合就需要我们自己写shell脚本,并让脚本一直运行在后台。

 

这个脚本的优点:不会根据inotify输出重复触发rsync同步。

缺点:每次都是rsync完整同步,如果文件数量较大则对比时间会比较长。

将上面内容保存为inotify_web.sh,执行

 

把脚本加入到开机启动项里

 

三、宝塔面板设置

 

1、添加网站

php版本选择“纯静态”

CentOS下 inotify+rsync 文件实时同步&用宝塔面板自建CDN加速境外网站

2、修改hosts文件

3、设置反向代理

目标URL一定要带http或https,缓存时间根据实际需求修改。

CentOS下 inotify+rsync 文件实时同步&用宝塔面板自建CDN加速境外网站

4、部署SSL

SSL-->其它证书。在这里可以看到从192.168.100.1服务中同步过来的域名证书,上面实时同步的作用就是为把证同步过来,以后192.168.100.1域名证书更新,其它的两个服务器也同步更新。

注:如果1号、2号备份服务器没有同步,在192.168.100.1服务器中/www/server/panel/vhost/cert 下随便创建一个文件就可以了。

CentOS下 inotify+rsync 文件实时同步&用宝塔面板自建CDN加速境外网站

5、添加解析

CentOS下 inotify+rsync 文件实时同步&用宝塔面板自建CDN加速境外网站

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: