HttpGzipModule
Contents |
Synopsis
This module allows for on-the-fly gzip compression. See also Gzip pre-compression module .
Example
gzip on; gzip_min_length 1000; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain application/xml; gzip_disable "MSIE [1-6]\.";
Compression ratio is available via the variable $gzip_ratio.
Directives
gzip
Syntax: |
gzip on | off |
Default: | off |
Context: |
http server location if in location |
Reference: | gzip |
Enables or disables gzip compression.
gzip_buffers
Syntax: | gzip_buffers number size |
Default: | 32 4k|16 8k |
Context: |
http server location |
Reference: | gzip_buffers |
Assigns the number and the size of the buffers into which to store the compressed response. If unset, the size of one buffer is equal to the size of page, depending on platform this either 4K or 8K.
gzip_comp_level
Syntax: | gzip_comp_level level |
Default: | 1 |
Context: |
http server location |
Reference: | gzip_comp_level |
The compression level, between 1 and 9, where 1 is the least compression (fastest) and 9 is the most (slowest).
gzip_disable
Syntax: | gzip_disable regex ... |
Default: | |
Context: |
http server location |
Appeared in: | 0.6.23 |
Reference: | gzip_disable |
Disable gzip compression for User-Agents matching the given regular expression. Requires PCRE library. Introduced in Nginx 0.6.23.
You can use "msie6" to disable gzip for Internet Explorer 5.5 and Internet Explorer 6. "SV1" (Service Pack 2) will be ignored since Nginx 0.7.63.
Example
gzip_disable "msie6";
gzip_http_version
Syntax: |
gzip_http_version 1.0 | 1.1 |
Default: | 1.1 |
Context: |
http server location |
Reference: | gzip_http_version |
Turns gzip compression on or off depending on the HTTP request version.
When HTTP version 1.0 is used, the Vary: Accept-Encoding header is not set. As this can lead to proxy cache corruption, consider adding it with add_header . Also note that the Content-Length header is not set when using either version. Keepalives will therefore be impossible with version 1.0, while for 1.1 it is handled by chunked transfers.
gzip_min_length
Syntax: | gzip_min_length length |
Default: | 20 |
Context: |
http server location |
Reference: | gzip_min_length |
Sets the minimum length, in bytes, of the response that will be compressed. Responses shorter than this byte-length will not be compressed. Length is determined from the "Content-Length" header.
gzip_proxied
Syntax: |
gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any ... |
Default: | off |
Context: |
http server location |
Reference: | gzip_proxied |
It allows or disallows the compression of the response for the proxy request in the dependence on the request and the response. The fact that, request proxy, is determined on the basis of line "Via" in the headers of request. In the directive it is possible to indicate simultaneously several parameters:
- off - disables compression for all proxied requests
- expired - enables compression, if the "Expires" header prevents caching
- no-cache - enables compression if "Cache-Control" header is set to "no-cache"
- no-store - enables compression if "Cache-Control" header is set to "no-store"
- private - enables compression if "Cache-Control" header is set to "private"
- no_last_modified - enables compression if "Last-Modified" isn't set
- no_etag - enables compression if there is no "ETag" header
- auth - enables compression if there is an "Authorization" header
- any - enables compression for all requests
gzip_types
Syntax: | gzip_types mime-type ... |
Default: | text/html |
Context: |
http server location |
Reference: | gzip_types |
Enables compression for additional MIME-types besides "text/html". "text/html" is always compressed.
gzip_vary
Syntax: |
gzip_vary on | off |
Default: | off |
Context: |
http server location |
Reference: | gzip_vary |
Enables response header of "Vary: Accept-Encoding". Note that this header causes IE 4-6 not to cache the content due to a bug (see [1] ).