時(shí)間:2023-09-16 22:48:02 | 來源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-09-16 22:48:02 來源:網(wǎng)站運(yùn)營(yíng)
如何讓你的靜態(tài)網(wǎng)站極速打開:關(guān)于個(gè)人博客,網(wǎng)絡(luò)上已有很多篇文章介紹了如何使用「Github Page」來搭建個(gè)人網(wǎng)站,但是「Github Page」在國(guó)內(nèi)的速度對(duì)于很多讀者來說 體驗(yàn)并不好。本文主要針對(duì)搭建靜態(tài)網(wǎng)站 已有一定經(jīng)驗(yàn)或充滿濃厚興趣 的讀者,介紹 如何提高靜態(tài)網(wǎng)站的訪問速度 的方法,不討論加速 WordPress 等動(dòng)態(tài)網(wǎng)站的內(nèi)容。HTML,CSS,JavaScript,XML
等文件,只要你的網(wǎng)站是「靜態(tài)的」就可以使用本文推薦的方法。本文不講如何搭建博客,主要從「Page 服務(wù)」講起,分析問題,到如何加快打開速度。個(gè)人推薦使用 CDN 或者騰訊云阿里云學(xué)生計(jì)劃的價(jià)格為 9.5 元/月
,峰值帶寬為 5Mbps 輕量應(yīng)用服務(wù)器。Github Page
開始的個(gè)人博客之旅,在 Github Page
上部署的網(wǎng)站就是靜態(tài)網(wǎng)站。下面是摘自「維基百科」對(duì)于靜態(tài)網(wǎng)頁的介紹。靜態(tài)網(wǎng)頁多數(shù)為單一的超文本標(biāo)記語言文件,每次請(qǐng)求該頁面時(shí),都會(huì)返回相同的內(nèi)容。在網(wǎng)站設(shè)計(jì)期間內(nèi)容只需創(chuàng)建一次。它通常是手動(dòng)編寫的,盡管有些站點(diǎn)使用類似于動(dòng)態(tài)網(wǎng)站的自動(dòng)創(chuàng)建工具,其結(jié)果將長(zhǎng)期存儲(chǔ)為完成的頁面。這些自動(dòng)創(chuàng)建的靜態(tài)網(wǎng)站在 2015 年左右變得更受歡迎,其中包括 Jekyll 和 Adobe Muse 等生成工具。但是為什么你的靜態(tài)網(wǎng)站打開速度很慢,主要有以下兩個(gè)方面的原因。(由于靜態(tài)網(wǎng)站基本不需要后臺(tái)處理,所以不討論 nginx 的響應(yīng)時(shí)間)
Github Page
是非常良心而且穩(wěn)定的服務(wù),但在國(guó)內(nèi)效果不太好。Coding Page
我使用了 2 年多時(shí)間,由于該服務(wù)經(jīng)常崩潰,導(dǎo)致博客時(shí)常無法訪問,在網(wǎng)上抱怨其表現(xiàn)的帖子也數(shù)不勝數(shù),但是作為一個(gè)免費(fèi)的服務(wù),我們也不好要求太多,后來我將靜態(tài)網(wǎng)站從 Coding Page
遷移到了自己的服務(wù)器。對(duì)于 Gitee 等其他的 Page 服務(wù)我沒有體驗(yàn)過,也就不作出過多的評(píng)價(jià)。public
或 .deploy_git
文件夾,你在 GitHub Page
部署的內(nèi)容也就是這里所說的靜態(tài)網(wǎng)站Github Page
或者部署使用的服務(wù)器當(dāng)然也可以是一個(gè)數(shù)據(jù)中心,存放了你的網(wǎng)站內(nèi)容,所以我們可以設(shè)置源站地址,直接通過 CDN 加速。9.5 元/月
。400 * 60 * 60 * 24 * 30 / 1024 / 1024 = 998.77 GB
計(jì)算可知,即使在每時(shí)每刻跑滿帶寬的近 70%,一個(gè)月下來也達(dá)不到服務(wù)器的流量上限,更何況正常情況下我們的服務(wù)器也不會(huì)一直持續(xù)在這個(gè)下行網(wǎng)速,總結(jié)來說,阿里云的學(xué)生計(jì)劃就兩個(gè)字,良心!// 安裝 nginx$ sudo apt-get install nginx// 查看 nginx 的配置文件路徑,檢查配置文件語法$ nginx -tnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful// 啟動(dòng) nginx$ nginx// 修改配置文件之后重啟 nginx$ nginx -s reload// 停止 nginx$ nginx -s stop
我創(chuàng)建了 /etc/nginx/sites-enabled/blog.cugxuan.cn
作為配置文件,按照對(duì)應(yīng)的路徑寫入配置。對(duì)于 HTTPS 的配置請(qǐng)查詢你使用的云服務(wù)商的對(duì)應(yīng)配置文檔。server { listen 80; server_name blog.cugxuan.cn; access_log blog.cugxuan.cn.log; error_log blog.cugxuan.cn.error; location / { root /root/blog.cugxuan.cn; index index.html index.htm; } # 強(qiáng)制跳轉(zhuǎn) HTTPS rewrite ^(.*) https://$server_name$1 permanent; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }}server { listen 443; server_name blog.cugxuan.cn; #填寫綁定證書的域名 ssl on; ssl_certificate tecent-ssl/blog.cugxuan.cn/Nginx/1_blog.cugxuan.cn_bundle.crt; ssl_certificate_key tecent-ssl/blog.cugxuan.cn/Nginx/2_blog.cugxuan.cn.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照這個(gè)協(xié)議配置 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照這個(gè)套件配置 ssl_prefer_server_ciphers on; location / { root /root/blog.cugxuan.cn; #站點(diǎn)目錄 index index.html index.htm; }}
search.json
是否開啟 Gzip 的對(duì)比。從圖中可以看到,在開啟了第 4 級(jí)的壓縮之后傳輸?shù)奈募笮】s小了一半多,請(qǐng)求時(shí)間也大大減少。/etc/nginx/nginx.conf
,在 http 的配置中修改 gzip 設(shè)置,最關(guān)鍵的是需要注意 gzip_types
,默認(rèn)的配置中有很多選項(xiàng)沒有包括,如 application/json
。http{ ... gzip on; gzip_min_length 1k; #低于1kb的資源不壓縮 gzip_comp_level 4; #壓縮級(jí)別【1-9】,越大壓縮率越高,同時(shí)消耗cpu資源也越多,建議設(shè)置在4左右。 gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css application/json; #需要壓縮哪些響應(yīng)類型的資源,多個(gè)空格隔開。不建議壓縮圖片 gzip_disable "MSIE [1-6]/."; #配置禁用gzip條件,支持正則。此處表示ie6及以下不啟用gzip(因?yàn)閕e低版本不支持) gzip_vary on; #是否添加“Vary: Accept-Encoding”響應(yīng)頭 ...}
那如何尋找沒有添加的 type 呢?我們打開 Chrome 的「開發(fā)者工具」,打開自己的網(wǎng)站,對(duì)于「Network」中請(qǐng)求自己網(wǎng)站的包,看是否啟動(dòng) Gzip,如果「Response Headers」顯示「Accept-Ranges: bytes」則表示該包沒有開啟加速,可以將「Content-Type」后面的值填入「gzip_types」并且使用空格隔開。關(guān)鍵詞:靜態(tài)
客戶&案例
營(yíng)銷資訊
關(guān)于我們
客戶&案例
營(yíng)銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。