有在觀注梅問題教學網的朋友,應該有感受到,這幾天打開梅問題教學網的網站或文章,速度明顯的快許多,難道是梅問題教學網搬家了嗎?其實不是,而是梅干在Goolge的雲端主機中,架設了一台VARNISH快取主機,而什麼是快取主機,其實它就有點像CDN的概念,會將主站的內容暫存一份到主機中,當下回有人再瀏覽時,就不用再到主機中去取資料,而是直接由快取主機中直接派送,因此主機的部分,一樣還是放在糖果中。
由於糖果主機無論在穩定度,還是處理速度上,梅干個人都感到相當的滿意,唯一只有在開啟的速度上,雖然梅干已將網站進行了優化,但還是會受限於機房在美國的,因此在很早之前梅干也曾用過台灣的幾家CDN的服務,但都無法快取住頁面,只能快取住CSS或JS檔,因此這樣幫助實在不大,雖然Cloudflare付費版,可快取網站,但費用上不便宜,所以最近發現一個比較划算的方案,那就是在Google雲端主機中,架設一台VARNISH快取主機,一來可以不用搬家,二來又能快取頁面,讓網頁瞬開,而透過VARNISH的好處是,快取是暫存在記憶體中,因此清除暫存時,速度相當的快,且還可自行手動的清除單一暫存的頁面,相當的方便喔!因此有興趣想架設的朋友,現在也一塊來看看。
Step1
首先進到Google Cloud Platform雲端主機的後台,按上方的「建立執行個體」。
Step2
接著將機房設為亞洲區,並選擇「Ubuntu 16.04 LTS」的作業系統。
Step3
分別將下方的HTTP與HTTPS的流量勾選後,再按「建立」。
Step4
建立完畢後,再對著剛所建立好的主機,按後方下拉選單中的「在瀏覽器視窗中開啟」選項。
Step5
接著輸入sudo apt-get update。
Step6
完成後,再輸入curl -s https://packagecloud.io/install/repositories/varnishcache/varnish5/script.deb.sh | sudo bash。
Step7
下載完畢後,再輸入sudo apt-get install varnish。
Step8
再按y。
Step9
這樣VARNISH快取主機已架設完畢了,相當的簡單吧!接著再來就剩下設定的部分,接著輸入sudo nano /lib/systemd/system/varnish.service。
Step10
將:6801改為:80。
Step11
改好後,再將游標向後移動。
Step12
把預設的256mb更改為2G~3G,此為暫存的容量,當超過時就會自動清除。
Step13
都改好後,再按Ctrl+X。
Step14
再按y確認。
Step15
再按一次Enter就可將文件儲存起來。
Step16
接著再輸入sudo systemctl daemon-reload。
Step17
再輸入sudo service varnish restart,重新啟動varnish主機。
Step18
接著再輸入sudo nano /etc/varnish/default.vcl,設定要快取的主機位置與域名。
Step19
分別將.host設為要快取主機的IP位置,以及將.port設為80。
Step20
接著將sub vcl_recv中的host更改為要快取主機的域名,完成後,一樣將文件儲存起來。
sub vcl_recv{
unset req.http.Cookie;
set req.http.host = “buy.minwt.com“;
}
sub vcl_synth{
if(resp.status == 277){
set resp.status=200;
set resp.http.Content-Type =”application/jason; charset=utf-8″;
synthetic({“{ “success”:true, “msg”: “purged” }”});
return(deliver);
}
}
unset req.http.Cookie;
set req.http.host = “buy.minwt.com“;
}
sub vcl_synth{
if(resp.status == 277){
set resp.status=200;
set resp.http.Content-Type =”application/jason; charset=utf-8″;
synthetic({“{ “success”:true, “msg”: “purged” }”});
return(deliver);
}
}
sub vcl_backend_response{
set beresp.ttl = 10d;
}
Step21
接著可在本機設定hosts先進行測試一下,沒問題後,再把DNS的IP指過去就可以了。
Step22
當開啟用快取後,首頁的DOM載入只需14ms,真是飛快,其它相關的css、js也是一樣。
Step23
當未啟用快取時,首頁的DOM就需1.69s,因此足足快了10倍左右,而整體因為有圖片,所以也快了近2倍。
Step24
由於VARNISH本身http是免費的,若是https則需升級為付費版,但這邊教學網則是用VARNISH+NGINX,可看到還沒開啟快取時,首頁需1.27s。
Step25
開啟後只需93ms,有了VARNISH的快取主機後,網站的主機要放那就都沒差啦!