如何让网站在两个以上服务器保证同步运行?

先用一张图说下整体思路
在这里插入图片描述

背景

  • 近期海外客户反馈,集团官网访问缓慢,打开竟然需要21s(实测),网站环境如下:
  1. 大陆服务器:
    • IP:1.1.1.1
    • 操作系统:windows 2008r2
    • 带宽:30M
    • IIS7.5
  2. 集团网站以目录名称来区分语言站点:(中文)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. 域名解析

  1. 默认情况下,一个域名只能解析一个IP,所以需要买一个 云解析DNS产品
  2. 2.2.2.2进行解析,并将解析线路改成境外,如下图
    在这里插入图片描述

3. 内容迁移

将内容压缩打包好,通过ftp传到2.2.2.2,并部署。重新测试了一遍,打开速度为2.47s,如下图
打开速度2.47s
虽然已经解决了网站访问慢的问题,但是网站内容更新,另一台服务器怎么自动同步呢?请继续往下看

4. 软件准备

首先下载rsync,下载地址戳我,它的最大优点是可以实现增量备份

  1. 将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
      
  2. 将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备份增量内容,还需要制定一个计划

  1. win+r,输入taskschd.msc打开任务计划程序,创建基本任务
    在这里插入图片描述
  2. 设置触发器
  3. 编辑操作,这一步很关键,1. 选中你的bat文件,2. 设置起始于(即你的bat从哪里执行)
    在这里插入图片描述

总结

当用户访问网站时,根据用户IP自动解析到对应的服务器,访问速度得到提升。
网站做了定期备份计划,一旦源服务器文件有任何更改,会被rsync记录,并在规定的时间点进行自动备份

其他

  1. 另外解析一个域名,单独绑定到1.1.1.1的网站上,方便国外同事进行维护
  2. 如果你想让你的网站实时同步,你需要让你的两台服务器连接同一个数据库,并且你的网站前端支持用https://file.123.com/upload/2019/123333.jpg这种形式而不是upload/2019/123333.jpg来调用你的文件
  3. 如果有一些文件你希望不备份,对该文件进行隐藏
  4. 安装rsync的客户端和服务端时,可以不用创建密码文件,如果要创建请对它设置600权限
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章