利用 cwRsync 实现代码(文件)同步的解决办法
最近公司网站的 负载集群(NLB、负载平衡) 越来越庞大,对于代码版本发布来说,真是一个恶梦,公司所用服务器是 Windows Server 2003,开发语言是 Asp.Net。尝试过很多种代码(文件)同步的功能,最后发现还是使用 cwRsync 来实现代码同步最好用。使用 cwRsync 来代码同步后,只需要对一台主服务器进行版本发布,其他负载的辅服务器可以自动同步,包括文件的更新、删除、重命名等,并且经过测试,效率、稳定性之类的还不错。
关于 cwRsync 配置的,网上已经相当多的资源,对于如何配置,这里也不累述了,下面直接贴出来我自己的配置代码,便于帮助更多的人,同时备忘:
服务器端,rsyncd.conf 文件 :
use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
pid file = rsyncd.pid
uid = 0
gid = 0
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
[www.test.com] #别名,可以自己取
path = /cygdrive/d/www.test.com
read only = false
transfer logging = yes
客户端,批处理中(rsync.bat):
set CYGWIN=nontsec
rsync -vzrtopg --delete rsync://192.168.0.88:873/www.test.com /cygdrive/d/www.test.com
最后再把批处理的文件建成计划任务,时间间隔可以根据项目需求而定,同时 set CYGWIN=nontsec 这个参数十分重要,不然会引起文件权限问题,一定要加上, --delete 是是否删除的选项,比如服务器端删除了一个文件,客户端如果也要删除,就要加上这个参数,对于代码同步,这个是必须的,但是对于文件同步,这个不加比较好
相关文章:
Windows 2003下网络负载平衡(负载均衡)的配置