先用一张图说下整体思路
背景
- 近期海外客户反馈,集团官网访问缓慢,打开竟然需要
21s
(实测),网站环境如下:
- 大陆服务器:
- IP:1.1.1.1
- 操作系统:windows 2008r2
- 带宽:30M
- IIS7.5
- 集团网站以目录名称来区分语言站点:(中文)https://www.123.com/cn/,(英语)https://www.123.com/en/,(西语)https://www.123.com/es/…
解决方案
1. 硬件准备
根据公司海外客户分布,选择租用孟买服务器,
- IP:2.2.2.2
- 操作系统:windows 2008r2
- 带宽:100M,按实际使用流量计费
- IIS7.5
2. 域名解析
- 默认情况下,一个域名只能解析一个IP,所以需要买一个 云解析DNS产品,
- 对
2.2.2.2
进行解析,并将解析线路改成境外,如下图
3. 内容迁移
将内容压缩打包好,通过ftp传到2.2.2.2
,并部署。重新测试了一遍,打开速度为2.47s
,如下图
虽然已经解决了网站访问慢的问题,但是网站内容更新,另一台服务器怎么自动同步呢?请继续往下看
4. 软件准备
首先下载rsync,下载地址戳我,它的最大优点是可以实现增量备份
- 将cwRsyncServer_4.1.0_fuq安装到
1.1.1.1
服务器
- 开启rsync服务
- 修改rsyncd.conf内容
strict modes = false log file = rsyncd.log pid file = rsyncd.pid port = 873 uid = 0 gid = 0 max connections = 10 #指定只有2.2.2.2才能连接1.1.1.1,另外在大陆服务器的安全组也设置仅2.2.2.2可以访问873端口 hosts allow = 2.2.2.2 #英文官网 [en] path = /cygdrive/d/en read only = false transfer logging = yes lock file = rsyncd.lock #西语 [es] path = /cygdrive/d/es read only = false transfer logging = yes lock file = rsyncd.lock
- 将cwRsync_4.1.0_kh安装到
2.2.2.2
服务器-
编写
bat
文件存放到rsync软件安装目录的bin
文件夹中rsync.exe -avzP --delete rsync@1.1.1.1::en /cygdrive/d/wwwroot/en rsync.exe -avzP --delete rsync@1.1.1.1::es /cygdrive/d/wwwroot/es
-avzP:P是将备份过程放日志里
–delete:保持真正的同步,看实际需求
rsync:在1.1.1.1服务器安装rsync时创建的用户名
en:rsync.conf里的[en]
cygdrive:我也不知道是啥,保留
d/wwwroot/en:用来存放备份内容的路径 -
双击bat文件看看是否会正常运行,截图就不放了,如果报错,查看
1.1.1.1
里的rsyncd.log
日志自行分析
-
5. 定期备份计划
为了保证2.2.2.2
可以定期从1.1.1.1
备份增量内容,还需要制定一个计划
win+r
,输入taskschd.msc
打开任务计划程序,创建基本任务
- 设置触发器
- 编辑操作,这一步很关键,1. 选中你的bat文件,2. 设置起始于(即你的bat从哪里执行)
总结
当用户访问网站时,根据用户IP自动解析到对应的服务器,访问速度得到提升。
网站做了定期备份计划,一旦源服务器文件有任何更改,会被rsync
记录,并在规定的时间点进行自动备份
其他
- 另外解析一个域名,单独绑定到
1.1.1.1
的网站上,方便国外同事进行维护 - 如果你想让你的网站实时同步,你需要让你的两台服务器连接同一个数据库,并且你的网站前端支持用
https://file.123.com/upload/2019/123333.jpg
这种形式而不是upload/2019/123333.jpg
来调用你的文件 - 如果有一些文件你希望不备份,对该文件进行隐藏
- 安装rsync的客户端和服务端时,可以不用创建密码文件,如果要创建请对它设置600权限