Step 6
變更 nginx 設定,加入新的網站,這部分比較複雜,每一個網站的設定也會不同,基本上可以先從 /etc/nginx/sites-available/default 這個預設的設定檔著手,先複製 default 的設定檔:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/blog

接著參考 WordPress 官方的 nginx 建議設定,將適用於自己網站的設定加進來。設定好之後,啟用新的設定檔:

sudo ln -s /etc/nginx/sites-available/blog /etc/nginx/sites-enabled/blog

Step 7
理論上來說,如果以上各個部分都有處理好的話,網站轉移就已經幾乎完成了,剩下的就是只要修改 DNS 的記錄,讓網址指向新的伺服器就可以了,但是因為轉移網站的過程有非常多小細節(我這裡也沒辦法說明的很詳細),一不小心可能就會疏忽掉,如果沒處理好的話,在 DNS 一修改之後,就有可能會讓網站停擺,尤其是對於那些不是非常熟悉網路與 Linux 技術的管理者。

為了保險起見,我個人是習慣在修改 DNS 記錄之前,先找一台身邊的 Linux 機器測試一下,將自己身邊 Linux 系統上的 /etc/hosts 加上一行:

12.34.56.78 blog.gtwang.org

請將其中的 12.34.56.78 以自己的新伺服器 IP 取代,這樣可以讓這台 Linux 在查找我們網站的 IP 時,會直接解析至新的伺服器,對於這一台 Linux 電腦來說,這樣做會跟直接修改 DNS 伺服器上的記錄有一樣的效果。

修改好 /etc/hosts 之後,接著在這台 Linux 上開啟瀏覽器,看看自己的網站是否可以正常運作,如果開啟網頁、登入等等都沒問題,那就可以放心去修改 DNS 惡記錄了。

Step 8
基本上只要細節都有注意到,也有透過修改 /etc/hosts 來測試,整個轉移過程是可以讓網站的營運完全不受影響的,以我這次的網站轉移來說,伺服器的 uptime 還是可以維持在 100%,網站上的訪客完全感受不到任何異樣,唯一的差異可能就是網站突然變快了。

gtwang-uptime-20151020-1

G. T. Wang 部落格 uptime

這張 uptime 的圖是我用 pingdom 的網站監控工具所得到的,這裡的重點是右邊的 uptime 在網站轉移期間,還是可以維持在 100%。而這裡有一點您可能會感覺很奇怪,怎麼更換主機空間之後,伺服器的反應時間馬上增加一倍,效能反而變差?

這裡反應時間會上升是正常的,主要的原因在於我的舊主機位於美國,新的主機位置在新加坡,而 pingdom 的測試伺服器都位於歐美,因此 pingdom 在 ping 新主機時,會多了往返太平洋的時間。

很顯然新主機對於歐美的訪客而言,網站速度可能會比較慢,但由於我的網站是中文網站,主要的客群位於東南亞,所以選擇將主機放在新加坡,提升東南亞地區的網站速度,至於歐美的訪客,就暫時用免費的 CDN 來補償。

參考資料:DigitalOcean