先用一張圖說下整體思路
背景
- 近期海外客戶反饋,集團官網訪問緩慢,打開竟然需要
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權限