由于业务扩展,前端采用nginx+keepalive,后端采用nginx负载均衡,所以会有web目录内容同步的需求。为了简便,采用rsync+sersync(原金山周洋开发)开源地址:http://code.google.com/p/sersync/
拓朴为:分发服务器(sersync)和目标服务器(rsync)
目标服务器配置(多台的配置相同):
vi /etc/xinetd.d/rsync
service rsync
{
disable = yes #此处的no改为yes,启用rsyncd服务进程
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
vi /etc/rsyncd.conf
uid=root
gid=root
address=192.168.0.101
max connections=10
use chroot=no
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[web]
path=/data/web
comment= web site
ignore errors=yes
read only=no
hosts allow=192.168.0.100
hosts deny=*
然后重启服务:service xinetd restart
查看rsyncd服务的启动情况:
分发服务器配置(sersync):
下载sersync2.5_32bit_binary_stable_final.tar.gz
解压后,vi confxml.xml
配置说明请参考官方文档,以下只摘取部份内容:
<sersync>
<localpath watch="/data/web">
<remote ip="192.168.0.101" name="web"/>
<remote ip="192.168.0.102" name="web"/>
<remote ip="192.168.0.103" name="web"/>
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
<rsync>
<commonParams params="-artuzp"/>
<auth start="true" users="tongbu" passwordfile="/home/tongbu/rsync.pas"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
保存后启动服务:./sersync -d -n 5
错误日志请查看less /tmp/rsync_fail_log.sh
error 1280
rsync: chdir failed
实际配置过程中出现以上错误,查看资料是因为目标服务器selinux的关系,使用setenforce=0关闭selinux,同步正常!
写下以备后查!
转载于:https://blog.51cto.com/navigate/830748