如何開啟Gzip壓縮

2016-08-16 23:38:49

文章參考瞭 kangzj. 的http://kangzj.net/how-to-enable-gzip-for-ur-website/

Gzip壓縮效率非常高,通常可以達到70%的壓縮率,也就是說,如果你的網頁有30K,壓縮之後就變成瞭9K左右,好處有二:

可以節省帶寬資源;加快加載速度。

節省帶寬這個對大多數人來說沒什麼,加快你網頁的加載速度確是普適的。前面看到許多朋友都在介紹如何開啟Gzip,但是個人感覺方法不甚全,聽我給大傢道來:

方法大概有三:在Contol Pannel開啟Gzip、開啟http服務器Gzip、利用php本身的Gzip。

1. 在Contol Panel開啟Gzip1.1 CPanel中開啟Gzip

在“SoftWare and Services”那一欄中“Optimize Website”(閱讀在cpanel x 中沒有找到這一項~):

默認情況隻壓縮框中的三種MIME類型,我們選擇成Compress all content的話,css和js就也可以被壓縮瞭。當然控制面板的Gzip壓縮是基於服務器的,控制面板隻不過提供一個友好的接口而已,如果你的技術盲,用控制面板開啟Gzip是最好的方法瞭。

1.2 Direct Admin中開啟Gzip(閱讀推薦使用這種方法,非常有效~)

DA在面板中MS沒有Gzip壓縮的選項,不過可以在.htaccess中開啟,打開.htaccess,添加下列的行:

?View Code SHELL SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/css image/gif image/jpeg image/png application/x-javascript

這樣過癮瞭,不但php,html,js,css等開啟瞭壓縮,連圖片都開啟瞭Gzip壓縮。

2. 開啟http服務器Gzip

隻玩過Apache和Nginx,所以隻介紹這兩種服務器開啟Gzip壓縮的方法:

1.1 Apache開啟Gzip

需要加載deflate模塊,如果開啟瞭AllowOverride All的話,可以直接按照在DA中修改.htaccess的方式來開啟Gzip壓縮。如果沒有開啟的話,就需要直接寫在httpd.conf裡面瞭,不多講瞭。

1.2 Nginx開啟Gzip

Nginx默認是開啟Gzip的,但是他隻壓縮有限的幾種類型,需要我們增加幾種,打開nginx.conf,找到下面的行,並修改(沒有的請添加):

?View Code SHELL # output compression saves bandwidth
gzip on;
gzip_proxied any;
gzip_http_version 1.1;
gzip_min_length 1100;
gzip_comp_level 5;
gzip_buffers 8 16k;
gzip_types text/plain text/xml text/css application/x-javascript application/xml application/xml+rss text/javascript application/atom+xml;
gzip_vary on;
#gzip_disable "MSIE [1-6]\.";

gzip_com_level不需要設置成很高,3即可,5的話太耗CPU資源,壓縮的效果也不會有什麼大的上升。至於比較,大傢可以在Gzip 檢測頁面(或者這裡測試)查看各個壓縮級別的壓縮率,便於選擇。

3. 利用php本身的Gzip

這個並不提倡,因為php的效率比服務器端的壓縮還是有很大差距的,但是如果服務器不支持Gzip壓縮的話,就隻能用這種方法來開啟Gzip。

1.1 對於WordPress可以安裝Gzip相關插件

比如wp super cache中就有Gzip壓縮的功能。也有專門的Gzip壓縮插件,比如:Gzippy、GZIP Output等。(上次閱讀在這上面發瞭很多時間,這次換瞭主機,問題還在,所以我用瞭上面第一種方法中的修改.htaccess)

1.2 修改WordPress源碼,增加Gzip功能

不推薦,因為每次升級之後還要再修改一次,很麻煩,不做介紹。想做的話可以參考萬戈:開啟GZIP,提速Wordpress。