日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何啟用GZIP壓縮以加速WordPress網(wǎng)站

成都創(chuàng)新互聯(lián)公司長期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為徐聞企業(yè)提供專業(yè)的網(wǎng)站制作、成都做網(wǎng)站,徐聞網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

加快wordpress網(wǎng)站速度的最簡單方法是消除所有不需要的資源。加速它的第二種最簡單的方法是壓縮所有需要的資源。在您的 web 服務(wù)器上啟用 GZIP 壓縮是實現(xiàn)這一目標(biāo)的最簡單、最有效的方法之一。

默認(rèn)情況下,所有現(xiàn)代瀏覽器都支持GZIP壓縮。但是,要為您的用戶提供無故障的壓縮資源,您必須正確配置您的服務(wù)器。

在這篇文章中,您將了解網(wǎng)絡(luò)數(shù)據(jù)壓縮的基礎(chǔ)知識、GZIP壓縮是什么、它的各種好處,以及如何使用它來加速不同服務(wù)器設(shè)置上的WordPress網(wǎng)站。

Web上數(shù)據(jù)壓縮的基礎(chǔ)知識

網(wǎng)絡(luò)上的數(shù)據(jù)壓縮是減少網(wǎng)站傳輸?shù)臄?shù)據(jù)大小的過程。根據(jù)數(shù)據(jù)類型——文本、圖像、樣式表、腳本、字體——有多種壓縮數(shù)據(jù)的方法。

網(wǎng)頁的主要組成部分

例如,縮小HTML、CSS和JavaScript是一種減少瀏覽器發(fā)送數(shù)據(jù)量的簡單方法。在這里,壓縮器通過從源代碼中刪除不必要的字符(例如注釋和空格)來壓縮文本。

在下面的簡單HTML文檔示例中,共有三種內(nèi)容類型:HTML標(biāo)記、CSS樣式和JavaScript代碼。

每種內(nèi)容類型都有獨特的語法和語義??偟膩碚f,這個HTML文檔總共有357個字符。







...

上面的代碼很容易閱讀和遵循。它非常適合開發(fā)。但是,瀏覽器沒有必要閱讀評論并具有完美縮進(jìn)的標(biāo)簽。智能壓縮器可以分析此文檔并從中刪除所有不必要的部分。

...

縮小后,HTML文檔減少到只有141個字符。這節(jié)省了60.50% 的字符數(shù)。這對眼睛來說并不容易,但這對瀏覽器來說并不重要。它仍然會向用戶顯示相同的頁面。

要利用這兩個版本,您可以將原始文檔維護(hù)為“開發(fā)版本”,但在將其發(fā)布之前縮小所有代碼。

大多數(shù)WordPress性能插件會自動為您處理這個問題。

未壓縮與縮小jQuery的文件大小壓縮

例如,jQuery 3.5.1庫的未壓縮版本比同一文件的縮小版本大3倍以上。

同樣,上述相同的壓縮技術(shù)可以優(yōu)化其他內(nèi)容類型,如圖像、視頻、字體等。像這樣的針對特定內(nèi)容的縮減是優(yōu)化網(wǎng)站基于文本的資產(chǎn)大小的第一步。

但是數(shù)據(jù)壓縮不僅僅是縮小。使用先進(jìn)的數(shù)學(xué)技術(shù),數(shù)據(jù)壓縮算法可以進(jìn)一步減少數(shù)據(jù)的大小。

這種數(shù)據(jù)壓縮方法最流行的例子之一是GZIP。它實現(xiàn)了高效的數(shù)據(jù)傳輸,并為使互聯(lián)網(wǎng)成為可行的全球通信媒介做出了重大貢獻(xiàn)。

什么是GZIP壓縮?

GZIP是GNU Zip的縮寫,是網(wǎng)絡(luò)上最流行的無損數(shù)據(jù)壓縮方法。它允許您減小站點的HTML頁面、樣式表和腳本的大小。

GZIP不僅是一種數(shù)據(jù)壓縮算法,也是一種文件擴(kuò)展名(.gz)和一種用于文件壓縮/解壓的軟件。

它基于DEFLATE算法,它是LZ77編碼和霍夫曼編碼算法的混合體。

GZIP壓縮基于DEFLATE算法

GZIP壓縮器獲取一組原始數(shù)據(jù)并對其進(jìn)行無損壓縮。原始數(shù)據(jù)可以來自任何文件類型,但GZIP最適用于基于文本的資產(chǎn)(例如HTML、CSS、JS)。

下一節(jié)將深入介紹GZIP壓縮的工作原理。

GZIP如何壓縮數(shù)據(jù)

GZIP壓縮工作原理的粗略說明

首先,GZIP壓縮器對原始數(shù)據(jù)運(yùn)行LZ77壓縮算法以消除冗余。該算法通過在預(yù)定義的滑動窗口(原始數(shù)據(jù)的一小部分)中查找重復(fù)模式來工作。

然后用元組替換所有重復(fù)的字符串以壓縮原始數(shù)據(jù)。

LZ77編碼算法示意圖

在上面的例子中,滑動窗口大小只有13個字符長(13個字節(jié))。但是,GZIP壓縮可以使用32KB(32,768字節(jié))的最大滑動窗口大小。滑動窗口的大小對LZ77壓縮性能起著關(guān)鍵作用。

用LZ77算法壓縮原始數(shù)據(jù)后,GZIP壓縮器再用霍夫曼編碼算法進(jìn)一步壓縮。它通過為出現(xiàn)頻率更高的字符分配最少的位數(shù),同時為稀有字符分配最高的位數(shù)來實現(xiàn)這一點。

這種技術(shù)類似于摩爾斯電碼中使用的技術(shù),其中英語中出現(xiàn)頻率更高的字母得到最短的序列。

要了解霍夫曼編碼算法的工作原理,請考慮單詞BOOKKEEPER。它有10個字符長,但它只有6個獨特的字符。這個詞很好地混合了單、雙和三字母。

幾乎所有網(wǎng)站都使用UTF-8字符編碼來表示字母和符號。UTF-8中的每個ASCII字符(也包括英文字母)使用1個字節(jié)(8位)。

“BOOKKEEPER”這個詞有很多重復(fù)的字母

10個字符的字符串如BOOKKEEPER將需要10個字節(jié)(80位)的內(nèi)存。您可以看到它包含1個字母實例BPR,2個字母實例OK,3個字母實例E。

霍夫曼編碼算法使用這些知識來無損壓縮字符串。它通過生成一個將每個唯一字母作為葉子的二叉樹來實現(xiàn)。

出現(xiàn)頻率最低的字母(例如B、P、R)將位于樹的底部,而那些頻繁出現(xiàn)的字母(例如E、OK)將理想地位于頂部。

樹中最頂層的節(jié)點是root,其值等于字符串中的總字符數(shù)。

“BOOKKEEPER”這個詞的霍夫曼樹

生成霍夫曼樹后,所有的左分支和右分支箭頭分別被賦予了01數(shù)字。然后,您可以通過跟蹤從根到葉的路徑并連接所有01來為任何字符生成霍夫曼代碼。

霍夫曼碼是每個字符唯一的二進(jìn)制碼

您可以注意到頻率最高的字母具有最小位大小的霍夫曼代碼。

注意:霍夫曼編碼算法可以通過對頻率相同的字符使用不同的排序策略來生成替代的二進(jìn)制代碼。但是,編碼字符串的總大小將保持不變。

編碼為25位字符串的80位字

存儲原始單詞所需的內(nèi)存減少了68.75%

使用具有0 / 1約定的霍夫曼樹生成滿足前綴屬性的二進(jìn)制代碼。它確保任何特定字符的Huffman代碼不是任何其他字符代碼的前綴,從而可以輕松地使用Huffman樹對編碼的字符串進(jìn)行解碼。這對GZIP解壓速度起主要作用。

就像上面的單詞一樣,GZIP壓縮器使用Huffman編碼算法進(jìn)一步優(yōu)化LZ77算法生成的元組。這會導(dǎo)致具有.gz擴(kuò)展名的高度壓縮文件。

如果您有興趣了解有關(guān)GZIP工作原理的更多信息,請參閱此視頻以進(jìn)行快速概述。

GZIP壓縮有多好?

通常,GZIP對小文件的壓縮率可達(dá)70%左右,但對于較大的基于文本的資產(chǎn),壓縮率可達(dá)90%。

一些流行的CSS和JS庫的GZIP壓縮率

在上表中,您可以看到使用GZIP壓縮縮小的文件可以進(jìn)一步減小其大小。

注意:您可以使用GZIP壓縮任何文件類型,但對于已經(jīng)使用其他方法壓縮的資產(chǎn)(例如圖像、視頻),它不會節(jié)省任何費用。有時,它甚至可能會增加文件大小。

壓縮算法的強(qiáng)度不僅取決于其壓縮率,還取決于它壓縮和解壓縮數(shù)據(jù)的速度和效率。這就是GZIP在大多數(shù)用例中的優(yōu)勢所在。

由于GZIP使用流算法快速解壓縮,因此非常適合速度至關(guān)重要的Web協(xié)議。此外,GZIP使用最少的資源來壓縮和解壓縮數(shù)據(jù),使其成為服務(wù)器和客戶端的理想選擇。

brotli vs bzip2 vs GZIP vs xz的壓縮性能(來源:OpenCPU)

上面的圖表比較了brotli、bzip2gzipxz壓縮算法的壓縮性能。GZIP在壓縮比測試中略有下降,但在壓縮和解壓縮速度方面,它完全擊敗了競爭對手。

查看壓縮速度圖,我們可以得出結(jié)論,GZIP非常適合在HTTP服務(wù)器和網(wǎng)絡(luò)上的其他數(shù)據(jù)流中進(jìn)行實時壓縮??紤]到其在推進(jìn)Web方面的所有積極因素,IETF批準(zhǔn)GZIP作為HTTP/1.1中三種壓縮標(biāo)準(zhǔn)格式之一。

注意:許多流行的操作系統(tǒng)(Linux、macOS、iOS)和現(xiàn)代游戲機(jī)(PlayStation 4、Wii U、Xbox One)都使用了GZIP壓縮庫的抽象zlib。它還用于壓縮圖像的無損PNG文件格式。

GZIP壓縮的6大優(yōu)勢

讓我們仔細(xì)看看GZIP壓縮的最重要優(yōu)勢。

提供不錯的壓縮比

如前所述,與競爭對手相比,GZIP沒有最好的壓縮比。但這也離他們不遠(yuǎn)了。通常,它可以幫助您將基于文本的資源的大小減少70-90%。

超快速壓縮和解壓

對于數(shù)據(jù)壓縮和解壓縮速度,GZIP是明顯的贏家。非常需要在HTTP服務(wù)器和其他數(shù)據(jù)流中進(jìn)行動態(tài)壓縮。

需要很少的內(nèi)存

GZIP留下最小的內(nèi)存占用,使其適用于內(nèi)存容量有限的服務(wù)器和系統(tǒng)。因此,您會發(fā)現(xiàn)即使是最便宜的網(wǎng)絡(luò)托管服務(wù)提供商也支持它。

即使在最壞的情況下也不會擴(kuò)展太多

像GZIP這樣的無損數(shù)據(jù)壓縮算法有一個嚴(yán)格的限制,超過這個限制就不能壓縮數(shù)據(jù)。

通常,當(dāng)資源已經(jīng)壓縮得很好,或者資源很小并且添加GZIP字典的開銷高于壓縮節(jié)省的開銷時,就會發(fā)生這種情況。我們可以將這種現(xiàn)象歸因于一個叫做熵編碼的概念。GZIP對這種效果具有很強(qiáng)的抵抗力。

免費使用和開源

GZIP最初是作為早期Unix系統(tǒng)中使用的專利壓縮程序的免費開源替代品而創(chuàng)建的。因此,它不受任何專利的束縛,任何人都可以自由使用。

享有普遍支持

據(jù)W3Techs稱,他們跟蹤的所有網(wǎng)站中有82%使用GZIP壓縮,這使其成為網(wǎng)絡(luò)上使用最廣泛的壓縮算法。

幾乎所有的服務(wù)器和客戶端都支持GZIP。無論您在哪個服務(wù)器上托管您的網(wǎng)站,您都可以通過在其上啟用GZIP來加快速度。

網(wǎng)站速度測試工具中的GZIP警告

除了縮小之外,啟用GZIP是您可以在網(wǎng)站上實施的最簡單、最有效的速度優(yōu)化之一。

這也是優(yōu)化WordPress的最簡單方法之一。盡管如此,許多WordPress網(wǎng)站仍然不使用它。

當(dāng)您訪問網(wǎng)站時,您的瀏覽器會通過檢查content-encoding: gzip響應(yīng)標(biāo)頭來檢查Web服務(wù)器是否啟用了GZIP 。如果標(biāo)頭存在,它會檢索壓縮文件,解壓縮它們,然后自動為您提供較小的文件。

Chrome DevTools中的“content-encoding: gzip”響應(yīng)頭

如果瀏覽器沒有檢測到GZIP響應(yīng)標(biāo)頭,它會下載未壓縮的文件。在大多數(shù)情況下,頁面加載速度的差異可能是幾秒鐘。因此,如果您沒有啟用GZIP,您將在網(wǎng)站速度測試工具中看到警告。

Google PageSpeed Insights / Lighthouse中的GZIP警告

當(dāng)您的網(wǎng)站上沒有啟用任何文本壓縮時,Google PageSpeed Insights會發(fā)出警告。

注意: Google PageSpeed Insights和Google Lighthouse是兩個獨立的網(wǎng)站性能測試工具。他們一直獨立工作,直到2018年Google升級PageSpeed Insights以使用Lighthouse作為其分析引擎。因此,PageSpeed Insights和Lighthouse現(xiàn)在是一回事。

Google PageSpeed Insights中的“啟用文本壓縮”警告

在上面的示例站點中,壓縮基于文本的資源可以將頁面重量減少78%以上,并將頁面加載時間加快2.1秒。

注意: PageSpeed Insights依賴于服務(wù)器返回給瀏覽器的響應(yīng)標(biāo)頭。有時,即使您啟用了GZIP壓縮,它也可能會顯示錯誤警告??赡苁且驗樵谑褂弥虚g代理服務(wù)器或安全軟件的機(jī)器上運(yùn)行速度測試。它們可能會干擾從外部服務(wù)器下載壓縮文件。

GTmetrix中的GZIP警告

如果您的網(wǎng)站不提供基于文本的壓縮資源,GTmetrix會顯示警告。與Google PageSpeed Insights一樣,它還會向您展示您可以實現(xiàn)的潛在節(jié)省。

GTmetrix中的“啟用壓縮”警告

注意: GTmetrix正在升級其速度測試算法,以使用最新的Google Lighthouse指標(biāo)替換舊的PageSpeed Insights和YSlow庫。您可以預(yù)期其GZIP壓縮警告與Lighthouse顯示的警告類似。

Pingdom工具中的GZIP警告

Pingdom Tools會直接警告您使用GZIP壓縮您的網(wǎng)站組件。

Pingdom工具中的“使用GZIP壓縮組件”警告

在描述部分,Pingdom Tools還為您提供了一些關(guān)于GZIP重要性的統(tǒng)計數(shù)據(jù)。

WebPageTest中的GZIP警告

如果WebPageTest檢測到未以最優(yōu)化的方式提供任何可壓縮響應(yīng),則會在其Performance Review選項卡中顯示警告。

WebPageTest中的“使用GZIP壓縮”警告

WebPageTest還將給出分級分?jǐn)?shù)以顯示警告的嚴(yán)重程度。例如,它將上述警告評為23分(滿分100分),這意味著您應(yīng)該優(yōu)先解決它。

如何檢查GZIP壓縮是否已啟用

Accept-Encoding: gzip, deflateHTTP標(biāo)頭所有現(xiàn)代瀏覽器都有效地支持。因此,大多數(shù)Web主機(jī)默認(rèn)在其所有服務(wù)器上啟用GZIP壓縮。

當(dāng)Web服務(wù)器看到瀏覽器發(fā)送的此標(biāo)頭時,它們會識別瀏覽器對GZIP的支持,并使用content-encoding: gzip標(biāo)頭以壓縮的HTTP響應(yīng)進(jìn)行響應(yīng)。

但是,如果您使用的是其他WordPress托管服務(wù)提供商,或者您只是想確認(rèn)您的網(wǎng)站是否正確提供GZIP壓縮內(nèi)容,請始終檢查它是否已啟用。

下面是一些檢查GZIP壓縮的簡單方法。

1.在線GZIP壓縮測試工具

使用在線工具是檢查您的網(wǎng)站是否啟用GZIP壓縮的最簡單方法。我建議使用免費的Check GZIP壓縮或HTTP壓縮測試工具。只需輸入您的網(wǎng)站URL并點擊“Check或“Test按鈕。

這兩個在線工具都會向您顯示關(guān)于是否啟用GZIP的簡要報告,以及您通過在啟用GZIP壓縮的情況下提供測試URL已保存(或可能保存)的數(shù)據(jù)傳輸量。

第一個工具還會向您顯示其他相關(guān)信息,例如您網(wǎng)站的服務(wù)器類型、內(nèi)容類型和壓縮時間。

使用Check GZIP壓縮工具測試wbolt.com的主頁


使用HTTP壓縮測試工具測試wbolt.com

您應(yīng)該注意到GZIP優(yōu)化不僅僅停留在您的網(wǎng)頁上,還包括其基于靜態(tài)文本的資源,如樣式表、腳本和字體。如果您使用CDN來為這些資產(chǎn)提供服務(wù),那么您需要確保CDN也為它們提供啟用GZIP壓縮的服務(wù)。

大多數(shù)現(xiàn)代CDN(例如Cloudflare、KeyCDN和CloudFront)都支持GZIP壓縮。您可以通過直接鏈接到資產(chǎn)來測試CDN服務(wù)的資產(chǎn)以進(jìn)行GZIP壓縮。

由CDN托管的資產(chǎn)的GZIP壓縮測試

在上面的報告中,可以看到Kinsta CDN使用的是KeyCDN引擎,這是一種傳統(tǒng)的拉式CDN。

2. “content-encoding: gzip” HTTP響應(yīng)頭

驗證網(wǎng)站是否提供GZIP壓縮內(nèi)容的第二種方法是驗證content-encoding: gzipHTTP響應(yīng)標(biāo)頭。

您可以打開Chrome DevTools或Firefox Developer Tools,然后在Network部分下查找此響應(yīng)標(biāo)頭。

我之前已經(jīng)在Chrome DevTools中展示過它的外觀。這是它在Firefox開發(fā)者工具中的外觀。

Firefox開發(fā)者工具中的“content-encoding: gzip”標(biāo)頭

您還可以在Chrome DevTools設(shè)置面板中啟用“Use large request rows”選項以查看頁面的原始大小和壓縮大小。如下所示,原始頁面的大小在使用GZIP壓縮后從118KB減少到僅22.9KB。

在Chrome Devtools中查看壓縮和未壓縮的頁面大小

3. 網(wǎng)頁速度測試工具

大多數(shù)網(wǎng)站速度測試工具會警告您不要使用GZIP之類的壓縮來服務(wù)您的網(wǎng)頁。許多閱讀本文的讀者可能正是因為這些GZIP警告,其中許多我已經(jīng)在上面進(jìn)行了深入討論。

各種網(wǎng)頁速度測試工具中的GZIP警告

您可以使用PageSPEed Insights、GTmetrix、Pingdom Tools和WebPageTest等測速工具來檢查您的WordPress網(wǎng)站是否啟用了GZIP壓縮。

如何啟用GZIP壓縮

如果您的Web服務(wù)器上沒有啟用GZIP壓縮,則有很多方法可以啟用它。確切的方法取決于您用于托管網(wǎng)站的Web服務(wù)器。

重要提示:與往常一樣,在編輯站點和服務(wù)器配置文件之前對其進(jìn)行備份。

使用WordPress插件啟用GZIP

在WordPress站點上啟用GZIP壓縮的最簡單方法是使用緩存或性能優(yōu)化插件。

例如,如果您在Apache Web服務(wù)器上托管您的WordPress站點,W3 Total Cache包含一個選項,可在其瀏覽器緩存設(shè)置面板下啟用GZIP壓縮。

同樣,WP Rocket允許您自動添加GZIP壓縮規(guī)則。這些插件通過將Apache的mod_deflate模塊添加到.htaccess文件來啟用GZIP壓縮。

在W3 Total Cache中啟用GZIP壓縮

WordPress插件需要修改Web服務(wù)器上的文件的權(quán)限。如果他們沒有正確的權(quán)限,那么他們將失敗或向您顯示錯誤。

在這種情況下,您需要聯(lián)系您的托管服務(wù)提供商或使用下面的代碼片段手動修改您的Web服務(wù)器的配置文件。

在Apache Web服務(wù)器上啟用GZIP

據(jù)Netcraft稱,Apache服務(wù)的活躍站點比當(dāng)今使用的任何其他Web服務(wù)器都多。它也是WordPress推薦的兩個Web服務(wù)器之一。

要在Apache服務(wù)器上啟用GZIP壓縮,您需要使用它的mod_filtermod_deflate模塊并使用正確的指令正確配置它們。他們將指示Apache壓縮服務(wù)器輸出,然后再通過網(wǎng)絡(luò)將其發(fā)送給客戶端。

您有兩個選項可以根據(jù)您擁有的訪問級別來編輯Apache的服務(wù)器配置:

第一個選項嚴(yán)格用于sysadmins,因為托管服務(wù)提供商很少允許您編輯主服務(wù)器配置文件。以這種方式解釋如何做到這一點超出了本文的范圍。您可以參考HTML5 Boilerplate項目和Apache文檔共享的示例Apache服務(wù)器配置以開始使用。

第二個選項非常適合大多數(shù)WordPress網(wǎng)站所有者,因為許多共享主機(jī)提供商允許您編輯.htaccess文件。

首先,使用SFTP或主機(jī)的在線文件管理器在WordPress站點的根目錄中查找.htaccess文件。然后將下面的代碼片段添加到它。

重要提示:確保該mod_filter模塊在您的服務(wù)器上處于開啟狀態(tài)。大多數(shù)網(wǎng)絡(luò)主機(jī)默認(rèn)啟用它,但如果不是,該AddOutputFilterByType指令將不起作用并可能引發(fā)HTTP 500錯誤。如果在添加下面的代碼片段后有任何問題,您可以檢查服務(wù)器的錯誤日志。


# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml  
# Remove browser bugs (only needed for ancient browsers)
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent

僅在.htaccess文件的現(xiàn)有指令之后添加上面的代碼。保存文件,然后檢查它是否在您的服務(wù)器上啟用了GZIP壓縮。

啟用GZIP壓縮后的Apache .htaccess文件示例

您的Web服務(wù)器現(xiàn)在應(yīng)該為上面列出的所有文件擴(kuò)展名提供壓縮文件。您可以使用前面提到的任何方法來確認(rèn)這一點。

如果您想確??蛻舳说拇砗桶踩浖粫蓴_GZIP壓縮,您可以將上面的代碼片段替換為下面的代碼片段。


# force compression for clients that mangle 'Accept-Encoding' request headers


SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding


# compress all output with one of the following file extensions

AddOutputFilterByType DEFLATE "application/atom+xml" \
"application/javascript" \
"application/json" \
"application/ld+json" \
"application/manifest+json" \
"application/rdf+xml" \
"application/rss+xml" \
"application/schema+json" \
"application/geo+json" \
"application/vnd.ms-fontobject" \
"application/wasm" \
"application/x-font-ttf" \
"application/x-javascript" \
"application/x-web-app-manifest+json" \
"application/xhtml+xml" \
"application/xml" \
"font/eot" \
"font/opentype" \
"font/otf" \
"font/ttf" \
"image/bmp" \
"image/svg+xml" \
"image/vnd.microsoft.icon" \
"text/cache-manifest" \
"text/calendar" \
"text/css" \
"text/html" \
"text/javascript" \
"text/plain" \
"text/markdown" \
"text/vcard" \
"text/vnd.rim.location.xloc" \
"text/vtt" \
"text/x-component" \
"text/x-cross-domain-policy" \
"text/xml"

# define and map media types to their appropriate encoding type    
# Using SVG format (Scalable Vector Graphics) is highly recommended to    
# load logos, icons, text, and simple images. You can compress .SVG files
# further using GZIP to create .SVGZ files. However, most browsers don’t
# know that they need to decompress them first if they’re not served
# without an appropriate ‘content-encoding’ HTTP response header. Thus,
# these images wouldn’t show up in the browser. Hence, this module.

AddType image/svg+xml svg svgz
AddEncoding gzip svgz

您可以通過轉(zhuǎn)到其代碼存儲庫并關(guān)注其中鏈接的所有資源,了解有關(guān)此處使用的所有指令的更多信息。

在Nginx Web服務(wù)器上啟用GZIP

根據(jù)Netcraft,Nginx是面向Web的計算機(jī)最常用的Web服務(wù)器。如果當(dāng)前的趨勢繼續(xù)下去,它將很快超過Apache,成為活躍站點使用最多的Web服務(wù)器。

您可以使用ngx_http_gzip_module中定義的指令在Nginx Web服務(wù)器上啟用GZIP壓縮。

首先,將下面給出的指令添加到您的nginx.conf文件中。通常,您可以在服務(wù)器的/etc/nginx/nginx.conf位置找到此文件。

# enables GZIP compression
gzip on; 
# compression level (1-9)
# 6 is a good compromise between CPU usage and file size
gzip_comp_level 6;
# minimum file size limit in bytes to avoid negative compression outcomes
gzip_min_length 256;
# compress data for clients connecting via proxies
gzip_proxied any;
# directs proxies to cache both the regular and GZIP versions of an asset
gzip_vary on;
# disables GZIP compression for ancient browsers that don't support it
gzip_disable "msie6";
# compress outputs labeled with the following file extensions or MIME-types
# text/html MIME-type is enabled by default and need not be included
gzip_types
application/atom+xml
application/geo+json
application/javascript
application/x-javascript
application/json
application/ld+json
application/manifest+json
application/rdf+xml
application/rss+xml
application/vnd.ms-fontobject
application/wasm
application/x-web-app-manifest+json
application/xhtml+xml
application/xml
font/eot
font/otf
font/ttf
image/bmp
image/svg+xml
text/cache-manifest
text/calendar
text/css
text/javascript
text/markdown
text/plain
text/xml
text/vcard
text/vnd.rim.location.xloc
text/vtt
text/x-component
text/x-cross-domain-policy;

如果您的站點提供大型JS和CSS文件,那么您可以通過將以下指令添加到nginx.conf文件來增加用于壓縮的緩沖區(qū)大?。?/p>

# sets the 'number' and 'size' of buffers for GZIP compression
# default buffer size is 4K or 8K depending on the platform
gzip_buffers 16 8k;

保存nginx.conf文件后不要忘記重新加載Nginx 。

sudo service nginx reload

最后,您應(yīng)該測試一下您的服務(wù)器是否啟用了GZIP壓縮。您可以參考Nginx文檔以獲取所有ngx_http_gzip_module指令的最新列表。

在IIS Web服務(wù)器上啟用GZIP

Microsoft的Internet信息服務(wù) (IIS) 是當(dāng)今使用的第三大流行Web服務(wù)器。IIS主要部署在運(yùn)行在Windows上的企業(yè)環(huán)境中,特別是用于設(shè)置公司特定的內(nèi)網(wǎng)和外網(wǎng)服務(wù)器。

由于各種兼容性問題,它很少用于托管WordPress網(wǎng)站。

但是,如果您發(fā)現(xiàn)自己處于需要在IIS上啟用GZIP壓縮的罕見情況之一,則可以參考Microsoft的文檔以開始使用。您可能還會發(fā)現(xiàn)此Stack Overflow thread很有幫助。

GZIP壓縮的替代方案

網(wǎng)絡(luò)上的數(shù)據(jù)壓縮世界一直在進(jìn)步。隨著平均頁面重量大小的不斷增加,網(wǎng)絡(luò)技術(shù)也在努力追趕它,以提高通過網(wǎng)絡(luò)傳輸數(shù)據(jù)的效率。

頁面體積大小隨時間增加(來源:HTTPArchive)

在過去幾年中,一種新的壓縮算法廣受歡迎:Brotli。壓縮WOFF2 Web字體最初是Brotli的主要關(guān)注點,但后來擴(kuò)展到支持對任何類型的數(shù)據(jù)進(jìn)行壓縮。

Brotli比GZIP更好地壓縮數(shù)據(jù),但它需要更多的時間和資源來壓縮數(shù)據(jù)。但是,它的解壓時間與GZIP相當(dāng),雖然它仍然有點慢。

Brotli支持各種瀏覽器

今天大多數(shù)瀏覽器都支持Brotli,但在WordPress網(wǎng)站上使用它仍然有些復(fù)雜。您必須通過支持Brotli或允許您安裝Brotli庫的托管服務(wù)提供商托管您的站點。大多數(shù)托管的WordPress主機(jī)尚不完全支持它,但如果您使用Cloudflare或KeyCDN等CDN ,則可以輕松啟用它。

Brotli顯示出壓縮靜態(tài)資產(chǎn)的巨大潛力。Akamai發(fā)表了一篇比較Brotli與GZIP的詳細(xì)文章。您可以查看它以了解有關(guān)Brotli的更多信息。

小結(jié)

一個優(yōu)化良好的網(wǎng)絡(luò)對每個人都有好處。用戶喜歡更快速的網(wǎng)站,網(wǎng)站所有者喜歡降低的托管費用,網(wǎng)絡(luò)主機(jī)喜歡在他們的服務(wù)器上實現(xiàn)的優(yōu)化。GZIP等壓縮技術(shù)是加快訪問者頁面加載時間的最佳方法之一。

WordPress網(wǎng)站所有者可以通過啟用GZIP壓縮立即加速他們的網(wǎng)站。對于其他服務(wù)器,本文也介紹了在各種Web服務(wù)器上啟用GZIP壓縮的多種方法。

速度對于任何網(wǎng)站都至關(guān)重要。壓縮就對了!


本文題目:如何啟用GZIP壓縮以加速WordPress網(wǎng)站
地址分享:http://www.dlmjj.cn/article/dhedjcg.html