Nginx基礎入門之gzip配置的方法

前言

gzip(gnu-zip)是一種壓縮技術。經過gzip壓縮后頁面大小可以變為原來的30%甚至更小,這樣,用戶瀏覽頁面的時候速度會塊得多。gzip的壓縮頁面需要瀏覽器和服務器雙方都支持,實際上就是服務器端壓縮,傳到瀏覽器后瀏覽器解壓并解析。瀏覽器那里不需要我們擔心,因為目前的巨大多數瀏覽器都支持解析gzip過的頁面。

無論是前端還是后端,在部署項目時,時常免不了用到nginx,小項目也時常做個反向代理啥的。今天就簡單直接,聊一下其中的一個點——gzip。如有錯誤,歡迎指正。

一般服務器端常用的是 ubuntucentoslinux 等。自己若沒有服務器,可在本地把玩一下。

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基礎入門之gzip配置的方法

幾個常用命令

  • 啟動: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;

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享