ngx_http_unzstd_filter_module is a filter that decompresses responses with “Content-Encoding: zstd” for clients that do not support “zstd” (Zstandard compression) encoding method. The module will be useful when it is desirable to store data compressed to save space and reduce I/O costs.
This Nginx module is currently considered experimental. Issues and PRs are welcome if you encounter any problems.
server {
listen 127.0.0.1:8080;
server_name localhost;
location / {
# enable zstd decompression for clients that do not support zstd compression
unzstd on;
proxy_pass http://foo.com;
}
}To use theses modules, configure your nginx branch with --add-module=/path/to/ngx_http_unzstd_filter_module. Several points should be taken care.
- You can set environment variables
ZSTD_INCandZSTD_LIBto specify the path tozstd.hand the path to zstd shared library represently. - static library will be tried prior to dynamic library, since this Nginx module uses some advanced APIs where static linking is recommended.
- System's zstd bundle will be linked if
ZSTD_INCandZSTD_LIBare not specified.
Syntax: unzstd on | off;
Default: unzstd off;
Context: http, server, location, when
Enables or disables decompression of zstd compressed responses for clients that lack zstd support.
When built with ngx_condition_module, this directive can also be configured
inside a when block.
Syntax: unzstd_force on | off;
Default: unzstd_force off;
Context: http, server, location, when
When enabled, decompresses zstd responses without checking whether the client
accepts zstd. Responses without Content-Encoding: zstd are not affected.
When built with ngx_condition_module, this directive can also be configured
inside a when block.
Syntax: unzstd_buffers number size;
Default: unzstd_buffers 32 4k | 16 8k;
Context: http, server, location
Sets the number and size of buffers used to decompress a response. By default, the buffer size is equal to one memory page. This is either 4K or 8K, depending on a platform.
Hanada im@hanada.info
This module is based on ngx_http_gunzip_module, one of nginx core modules and ngx_unbrotli, a nginx module for brotli decompression.
This Nginx module is licensed under BSD 2-Clause License.