实现Rsync同步Nginx前端配置

时间:2022-05-23 03:22:59

近期,由于我们的阿里前端服务器频频受到恶意的流量攻击,导致前端NGINX进入黑洞而无法正常访问公司网站。

按之前的预计方法,采用加速乐及备用全配置前端的作法,将恶意短时流量攻击的损失时间降到最短。现将C这台机用作全配置的NGINX前端,A和B前端的任何NGINX配置都会通过RSYNC同步到C这台机器上。

部署的思路如下:

规范A和B的nginx配置目录(用include conf.d/*来实现),在这两个服务器上配置一个rsync的服务端进程,然后,在C上每两分钟运行rsync同步进程,及时的将A和B上的NGINX反映到C上面。达到全配置实时生效的效果。

配置如下:

一,A上的配置(B上相同配置)

1,安装rsync(阿里云默认已有此程序)

2,生成文件rsyncd.conf,内容如下:

      

#secrets file = /etc/rsyncd.secrets

#motd file = /etc/rsyncd.motd

read>list = yes

uid = XXX

gid = XXX

use chroot = no

max connections = 

log file = /var/log/rsyncd.log

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

# Remote sync configuration module

[hosts_sync]

comment = nginx conf rsync

path = /XXX/nginx/conf/conf.d/

read only = yes

#auth users = rsync

3,启动rsync进程,将之加入自动启动

a, /usr/bin/rsync --daemon

b,在/etc/rc.local里写入:/usr/bin/rsync –daemon (也可以其它方式实现)

二,161上配置:

1,crontab定时同步脚本:

*/2     *       *       *       *        /usr/bin/rsync -arv X.X.X.X::hosts_sync/ /XXX/nginx/conf/conf.d/ >> /var/log/rsyncd.log 2>&1

*/2     *       *       *       *        /usr/bin/rsync -arv X.X.X.X::hosts_sync/ XXX/nginx/conf/conf.d/ >> /var/log/rsyncd.log 2>&1

2,Crontab定时reload脚本(必要时可手工)

10      */2     *       *       *       service nginx reload

三,测试

    1,  查看NGINX目录,相关文件已生成

    2,  日志生成如下: