服務器設置 gzip 壓縮是 web 開發里很普遍的做法。假設你要請求一個 100k 的文件,網絡傳輸速度為 50k/s,需要 2s 才能得到數據,但是如果在服務器設置了 gzip 壓縮,將服務端的文件壓縮到了 50k(實際上的壓縮率往往小於 50%),這時候只需 1s 就能得到數據,然后在客戶端解壓即可。
打開httpd.conf,並且找到下面這行解開注釋,重啟apache。
LoadModule deflate_module modules/mod_deflate.so
再次刷新我們的頁面就可以看到,我們的文件返回中出現了
Content-Encoding: gzip
當然實際應用中我們並不需要對所有文件進行壓縮,比如我們無需對圖片文件進行 gzip 壓縮,因為圖片文件(一般為 jpg、png等格式)本身已經壓縮過了,再進行 gzip 壓縮可能會適得其反,類似的還有 PDF 以及音樂文件。因此我們可以按照如下設置:
<IfModule mod_deflate.c> # 讓apache對傳輸到瀏覽器的內容進行壓縮 SetOutputFilter DEFLATE # 壓縮等級 9 總共級別是從1-9,1最小 9最大,但是越大就會越占CPU DeflateCompressionLevel 9 #設置不對后綴gif,jpg,jpeg,png的圖片文件進行壓縮 SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary </IfModule>
或者
<IfModule mod_deflate.c> # 壓縮等級 9 DeflateCompressionLevel 9 # 壓縮類型 html、xml、php、css、js AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php AddOutputFilter DEFLATE js css </IfModule>