最近在给博客搞一个容灾服务器,由于使用 Hexo ,所以网站数据数据的同步只需要在 _config.yml 中添加容灾服务器的部署配置信息即可,但是由于本站使用了 letsencrypt 实现全站 HTTPS ,需要实现 letsencrypt 在主服务器上自动循环注册之后自动地同步到容灾服务器,以避免容灾服务器的证书在3个月后过期的问题。这里使用 Linux 下经典的 rsync 来实现。
安装 rsync
rsync 不比 nginx 等程序,稳定可用即可,因此直接从包仓库安装:
1
2
|
yum install rsync #CentOS、RHEL、Fedora
apt-get install rsync #Debian、Ubuntu
|
选择同步方式
rsync 支持两种同步方式,一种是使用自带的守护进程运行一个 rsync daemon 服务器,然后对方使用 socks5 来连接服务器传输文件,另一种是直接使用 SSH 进行认证和数据传输。
前者的用户名密码都是以 username:password
这样的形式明文存在 secrets 文件中的,传输过程默认也没有使用加密方式,很方便进行中间人攻击,同时还要运行一个守护程序吃服务器性能,所以不太适合本文要进行远程传输的需求。故本文选择使用 SSH 方式进行同步。