首先準(zhǔn)備好香港輕量應(yīng)用服務(wù)器、域名,將域名解析到服務(wù)器公網(wǎng)ip,如果使用境內(nèi)輕量服務(wù)器需要提前備案域名,否則解析會被阻斷。
如何檢查網(wǎng)站首頁加載時間?
安裝網(wǎng)站后在瀏覽器打開網(wǎng)站,通過瀏覽器的DevTools可以看到首頁加載耗時,長時間的加載,對任何網(wǎng)站來說都是致命的災(zāi)難,糟糕的用戶體驗很大程度上可能會造成大量用戶的流失,同時也會給seo優(yōu)化帶來不利的影響,最終給網(wǎng)站造成不可估量的損失。
通過分析我們可以發(fā)現(xiàn)請求數(shù)量大都是js、css和圖片文件,對比發(fā)現(xiàn)較大的文件往往是圖片、視頻等,少則幾十上百k,大則幾m十幾m,如此數(shù)量的文件給本不富裕的帶寬雪上加霜。
怎么縮短網(wǎng)站的加載時間?
如何解決這個問題?CDN加速可以幫我們解決,通過CDN可以減少用戶訪問消耗帶寬較大的文件對服務(wù)器造成的壓力,同時CDN服務(wù)會將你網(wǎng)站的文件分發(fā)到全國各個節(jié)點緩存起來,供用戶就近訪問。
首先開通CDN服務(wù),對于香港輕量服務(wù)器網(wǎng)站而言,需要選擇海外CDN節(jié)點加速(因為沒有備案的關(guān)系),系統(tǒng)每個月會贈送10GB中國境內(nèi)的流量包,對于流量不大的網(wǎng)站來說是完全夠用的。
開通之后就需要添加域名。域名配置這里我們選擇中國境內(nèi),這樣CDN加速才會生效。
源站配置則是配置被加速對象的相關(guān)信息,此處自有網(wǎng)站就選擇自有源,協(xié)議跟隨服務(wù)器,地址填寫服務(wù)器公網(wǎng)ip地址,回源host填寫自己的域名。
其他配置我們暫時使用默認(rèn)配置就行,保存配置后等待CDN生效,再次訪問網(wǎng)站,通過devtools可以看到我們請求的域名所解析的ip地址已經(jīng)不是服務(wù)器的公網(wǎng)ip地址了,這樣就表示CDN已經(jīng)生效了。
也可以在CDN控制臺查詢該ip是否是CDN節(jié)點ip。
再次查看網(wǎng)站加載耗時和相對于第一次來說的提升。CDN節(jié)點加速可以通過不同地區(qū)的節(jié)點將網(wǎng)站緩存,當(dāng)用戶訪問時,就會訪問距離最近的CDN節(jié)點緩存的網(wǎng)站信息,無需經(jīng)過服務(wù)器,可以極大的提高網(wǎng)頁的加載速度。
配合良好的CDN設(shè)置可以最大限度利用CDN為我們提供良好的加速效果,下文中僅選擇涉及安全以及對加速有效果的功能項,未提到的功能請自行配置。
訪問控制:防盜鏈配置可以防止別人盜刷你的cdn流量,將域名和服務(wù)器ip添加進(jìn)白名單,并且不允許空referer訪問。
單IP訪問限頻可防御部分CC攻擊,但也可能會影響網(wǎng)站訪問,應(yīng)該根據(jù)實際情況調(diào)整闕值。
緩存配置:
緩存可以進(jìn)一步提高網(wǎng)站加載速度,在節(jié)點緩存過期配置中新增規(guī)則。
文件類型-內(nèi)容:“.jpg;.png;.jpeg;.gif;.bmp;.mp3;.mp4;.flv;.webp;.swf;.css;.js”,刷新時間:1天。
文件類型-內(nèi)容:“php;jsp;asp;aspx”,不緩存。因為php、jsp、asp、aspx都是動態(tài)文件,如果設(shè)置緩存的時間,會導(dǎo)致網(wǎng)站出錯。
對于html文件不建議緩存,在緩存有效期內(nèi)修改了文件,可能會造成訪問到的文件不是最新的,但是如果你的html內(nèi)容相對比較固定并且長時間不會改動,也可以考慮開啟,緩存時間自行評估。
可以通過刷新預(yù)熱手動刷新指定內(nèi)容的緩存。
HTTPS配置:
HTTPS建議開啟,可以直接申請免費證書。
HTTP2.0建議開啟,HTTP2支持TCP多路復(fù)用,減少網(wǎng)站加載時間。
OCSP裝訂建議開啟,顯著提高了 TLS 握手效率,節(jié)省了用戶驗證時間。
QUIC視經(jīng)濟(jì)情況決定是否開啟(需要單獨付費),QUIC能夠保障網(wǎng)絡(luò)安全性,減少傳輸和連接時的延時,避免網(wǎng)絡(luò)擁塞,同時保障客戶端訪問 CDN 節(jié)點時數(shù)據(jù)傳輸?shù)陌踩裕嵘L問效率。
高級配置:
用量封頂配置可以預(yù)防DDOS類攻擊造成流量異??圪M,根據(jù)配置關(guān)閉CDN服務(wù)或直接回源。
智能壓縮可以讓 CDN 在返回內(nèi)容時會按照設(shè)定規(guī)則對資源進(jìn)行 Gzip 、 Brotli 壓縮,有效減少傳輸內(nèi)容大小,節(jié)省開銷。
除了正確配置CDN可以起到一定加速效果之外,我們也可以對應(yīng)用進(jìn)行優(yōu)化起到加速的效果。由于我使用的環(huán)境是PHP,所以選擇OPCache配合Mencached,兩個插件都能犧牲一定內(nèi)存換取訪問速度,OPcache 用于加速代碼訪問,memcached 用于加速數(shù)據(jù)訪問,它們功能不同,完全獨立,我們在wordpress中安裝并啟用這兩個插件。需要注意的是CDN和緩存插件都需要用戶訪問并命中后才能生成對應(yīng)的緩存,這個時候才能起到加速的效果,實際操作中可以多刷新幾次網(wǎng)站,通過瀏覽器控制臺顯示的數(shù)據(jù)可以判斷緩存是否生效。
網(wǎng)站加載速度進(jìn)一步降低,控制臺大小列顯示文件來自內(nèi)存緩存。
另外,對于小帶寬或者香港輕量服務(wù)器還可以使用google的bbr算法改善tcp擁堵情況。