Linux rsync 同步实践
公司网站 有两台服务器 A、B,做了动静分离,A上为静态服务器安装有nginx,B为Tomcat容器。访问时,通过A的nginx 做反向代理,静态文件http请求,目录statics直接访问A服务器上的静态文件。 但我们由于开发的时候 项目 java代码和静态文件都在一起,只发布到 B上,然后将静态文件目录statics直接同步到 A上,这样减少了发布的复杂度,如果服务器多的话效果更佳。 其实最初做动静分离,用的是nginx 的缓存功能,直接将静态文件缓存到A服务器上,但这个时候对文件更新不友好。rsync能很好的解决这个问题。 1. rsync 同步的大致思路 服务器A和B上都安装rsync,其中B服务器上是以服务器模式运行rsync,而A上则以客户端方式运行rsync。这样在web服务器B上运行rsync守护进程,在A上定时运行客户程序来同步web服务器B上需要同步的内容。 rsync 同步有下面几个优点: 可以镜像 保存整个目录树和文件系统。 可以很容易做到保持原来文件的权限、时间、软硬链接等等。 无须特殊权限即可安装。 快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩 操作,因此可以使用更少的带宽。 安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。