nginx開啟GZIP來壓縮網頁


HTTP協議上的GZIP編碼是一種用來改進web應 用程序性能的技術。大流量的WEB站點常常使用GZIP壓縮技術來讓用戶感受更快的速度。這一般是指WWW服務器中安裝的一個功能,當有人來訪問這個服務 器中的網站時,服務器中的這個功能就將網頁內容壓縮后傳輸到來訪的電腦瀏覽器中顯示出來.一般對純文本內容可壓縮到原大小的40%.這樣傳輸就快了,效果 就是你點擊網址后會很快的顯示出來.當然這也會增加服務器的負載. 一般服務器中都安裝有這個功能模塊的。

減少文件大小有兩個明顯的好處,一是可以減少存儲空間,二是通過網絡傳輸文件時,可以減少傳輸的時間。gzip 是在 Linux 系統中經常使用的一個對文件進行壓縮和解壓縮的命令,既方便又好用。

在Nginx安裝完成之后,我們可以開啟Gzip壓縮功能,這里Nginx默認只能對text/html類型的文件進行壓縮。

 

下面的指令為開啟Gzip的指令:

 # 啟用 gzip 壓縮功能 gzip on;  # 默認值是1.1,就是說對HTTP/1.1協議的請求才會進行gzip壓縮 gzip_http_version 1.1;  gzip_vary on;  # 壓縮級別,1壓縮比最小處理速度最快,9壓縮比最大但處理最慢,同時也最消耗CPU,一般設置為3就可以了 gzip_comp_level 6;  # nginx 做前端代理時啟用該選項,表示無論后端服務器的headers頭返回什么信息,都無條件啟用壓縮 gzip_proxied any;  # 什么類型的頁面或文檔啟用壓縮 gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript image/jpeg image/gif image/png;  # 最小壓縮的頁面,如果頁面過於小,可能會越壓越大,這里規定大於1K的頁面才啟用壓縮 gzip_min_length 1024;  # 設置系統獲取幾個單位的緩存用於存儲gzip的壓縮結果數據流 gzip_buffers 16 8k;  # 禁用IE6的gzip壓縮 gzip_disable "MSIE [1-6].(?!.*SV1)";

 

相關配置說明:

1、在gzip_http_version的默認值是1.1,就是說對HTTP/1.1協議的請求才會進行gzip壓縮。

如果使用了proxy_pass進行反向代理,那么nginx和后端的upstream server之間是用HTTP/1.0協議通信的,如果使用nginx通過反向代理做Cache Server,前端的nginx沒有開啟gzip,且后端的nginx上未設置gzip_http_version為1.0,那么Cache的url將不會被gzip壓縮。

2、gzip_disable的設置是禁用IE6的gzip壓縮

IE6的某些版本對gzip的壓縮支持不是很好,會造成頁面的假死。對img進行gzip后會造成IE6的假死,把對img的gzip壓縮去掉后就正常了。為了確保其它的IE6版本不出問題,所以加上了gzip_disable配置項。

3、gzip_min_length設置允許壓縮的頁面最小字節數,頁面字節數從header頭中的Content-Length中進行獲取。

默認值是0,不管頁面多大都壓縮。建議設置成大於1k的字節數,小於1k可能會越壓越大。 即: gzip_min_length 1024。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM