nginx gzip配置引數解讀

codecraft發表於2018-01-04

本文主要解析一下nginx ngx_http_gzip_module以及ngx_http_gzip_static_module中的gzip相關配置引數。

gzip

名稱 預設配置 作用域 官方說明 中文解讀 模組
gzip gzip off; http, server, location, if in location Enables or disables gzipping of responses. 設定是否開啟對後端響應的gzip壓縮,然後返回壓縮內容給前端 ngx_http_gzip_module
gzip_buffers gzip_buffers 32 4k或16 8k; http, server, location Sets the number and size of buffers used to compress a response. By default, the buffer size is equal to one memory page. This is either 4K or 8K, depending on a platform. 設定用於壓縮後端response的buffer的數量和每個的大小,預設每個buffer大小為一個記憶體頁,根據平臺不同可能是4k或8k ngx_http_gzip_module
gzip_comp_level gzip_comp_level 1; http, server, location Sets a gzip compression level of a response. Acceptable values are in the range from 1 to 9. 指定gzip壓縮的級別,預設為1,該值可設定的範圍是1-9,1為最小化壓縮(處理速度快),9為最大化壓縮(處理速度慢),數字越大壓縮的越好,也越佔用CPU時間 ngx_http_gzip_module
gzip_disable 沒有預設值 http, server, location Disables gzipping of responses for requests with User-Agent header fields matching any of the specified regular expressions. 正則匹配User-Agent中的值,匹配上則不進行gzip ngx_http_gzip_module
gzip_min_length gzip_min_length 20; http, server, location Sets the minimum length of a response that will be gzipped. The length is determined only from the Content-Length response header field. 設定進行gzip壓縮的閾值,當後端response的Content-Length大小小於該值則不進行gzip壓縮 ngx_http_gzip_module
gzip_http_version gzip_http_version 1.1; http, server, location Sets the minimum HTTP version of a request required to compress a response. 設定進行gzip壓縮的最小http版本 ngx_http_gzip_module
gzip_proxied gzip_proxied off; http, server, location Enables or disables gzipping of responses for proxied requests depending on the request and response. The fact that the request is proxied is determined by the presence of the “Via” request header field. 根據request或響應的相關header的值來決定是否進行gzip ngx_http_gzip_module
gzip_types gzip_types text/html; http, server, location Enables gzipping of responses for the specified MIME types in addition to “text/html”. The special value “*” matches any MIME type (0.8.29). Responses with the “text/html” type are always compressed. 指定哪些mime types啟用gzip壓縮,預設text/html ngx_http_gzip_module
gzip_vary gzip_vary off; http, server, location Enables or disables inserting the “Vary: Accept-Encoding” response header field if the directives gzip, gzip_static, or gunzip are active. 是否往response header裡頭寫入Vary: Accept-Encoding ngx_http_gzip_module
gzip_static gzip_static off; http, server, location Enables (“on”) or disables (“off”) checking the existence of precompressed files. The following directives are also taken into account: gzip_http_version, gzip_proxied, gzip_disable, and gzip_vary. 開啟之後,接到(靜態檔案)請求會到url相同的路徑的檔案系統去找副檔名為”.gz”的檔案,如果存在直接把它傳送出去,如果不存在,則進行gzip壓縮,再傳送出去 ngx_http_gzip_static_module

例項

http {
    gzip on;
    gzip_buffers 8 16k; ## 這個限制了nginx不能壓縮大於128k的檔案
    gzip_comp_level 2;
    gzip_disable "MSIE [1-6].(?!.*SV1)";
    gzip_min_length 512; ##單位byte
    gzip_http_version 1.0;
    gzip_proxied expired no-cache no-store private auth;
    gzip_types   text/plain application/x-javascript text/css application/xml;
    gzip_vary on;
    gzip_static  on;
    //......
}

doc

相關文章