前言
gzip(gnu-zip)是一種壓縮技術。經過gzip壓縮後頁面大小可以變成原來的30%甚至更小,這樣,使用者瀏覽頁面的時候速度會塊得多。 gzip的壓縮頁面需要瀏覽器和伺服器雙方都支持,實際上就是伺服器端壓縮,傳到瀏覽器後瀏覽器解壓縮並解析。瀏覽器那裡不需要我們擔心,因為目前的巨大多數瀏覽器都支援解析gzip過的頁面。
無論是前端或後端,在部署專案時,時常免不了用到nginx,小專案也常做個反向代理啥的。今天就簡單直接,聊聊其中的一個點-gzip。如有錯誤,歡迎指正。
一般伺服器端常用的是 ubuntu、centos、linux 等。自己若沒有伺服器,可在本地把玩一下。
mac 安裝
mac下可直接用brew安裝,若未安裝brew可先行安裝
/usr/bin/ruby -e "$(curl -fssl https://raw.githubusercontent.com/homebrew/install/master/install)" brew install nginx
預設配置
安裝完成後會看到命令列含有以下訊息,可以看到nginx.conf所在路徑,這正是我們要找的設定檔。同時含有連接埠信息,當啟動nginx時,可以直接訪問http://localhost:8080,當看到下圖所示頁面,即安裝啟動成功。
docroot: /usr/local/var/www default config: /usr/local/etc/nginx/nginx.conf port:8080
幾個常用指令
啟動:nginx
重新熱啟動:nginx -s reload
關閉:nginx -s stop
測試語法:nginx -t
#gizp設定:
gzip 相關設定可放在 http{}
或 server{}
或 location{}
等級,若不同層級有重複設定優先權為 location{} > server{} > http{}
1、開啟gzip壓縮
gzip on;
2、gzip http 版本
gzip_http_version 1.0;
3、禁止ie6進行gzip壓縮(當然現在基本上已經沒有人使用ie6了)
gzip_disable "msie [1-6]";
4、壓縮等級(1~9,一般為平衡檔案大小和cpu使用,5是常用值,當然跟實際機器的情況有關)
gzip_comp_level 5;
5、最小壓縮臨界值(預設的是20位元組)
##
gzip_min_length 20;6、壓縮通過代理連結的客戶端資料
gzip_proxied any;7、採用http協定版本預設是1.1 ,對於1.0的請求不會壓縮,如果設定成1.0,表示http1.0以上的版本都會壓縮。 (如果使用了proxy_pass 進行反向代理,那麼nginx和後端的upstream server之間預設是用http/1.0協定通訊的。)
gzip_http_version 1.0;8、代理快取壓縮和原始版本資源,避免客戶端因accept-encoding不支援gzip而發生錯誤的現象(現在一般都採用gzip)
gzip_vary on;9、壓縮檔案類型(預設總是壓縮text/html類型,其中特別說明的是application/javascript和text/javascript最好都加上,若頁面script標籤的type不同則有可能發生部分js檔案不會壓縮,預設type為application/javascript)
gzip_types application/atom+xml application/javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/plain text/javascript text/x-component;10.如果有已經壓縮的(.gz)或提供靜態檔案服務,可以設定為on。如果不是這樣,最好設定為off,因為這會造成額外的i/o開銷。一個比較好的處理方式是放在
location{}或
server{}層級單獨處理。
gzip_static on;11、壓縮結果資料流儲存所用空間,以下表示以8k為單位,依照原始資料大小以8k為單位的16倍申請記憶體。預設值是申請跟原始資料相同大小的記憶體空間去儲存gzip壓縮結果。
gzip_buffers 16 8k;
以上是Nginx基礎入門之gzip設定的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!