本文主要解析一下nginx ngx_http_gzip_module以及ngx_http_gzip_static_module中的gzip相關配置參數。javascript
名稱 | 默認配置 | 做用域 | 官方說明 | 中文解讀 | 模塊 |
---|---|---|---|---|---|
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; //...... }