如何讓網站在兩個以上服務器保證同步運行?

先用一張圖說下整體思路
在這裏插入圖片描述

背景

  • 近期海外客戶反饋,集團官網訪問緩慢,打開竟然需要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權限
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章