Skip to main content

zstd-nginx-module: Maintained, Tested and Packaged


by Danila Vershinin, September 2, 2026

The canonical Zstandard module for NGINX has had no release since 2023. We continue it: the streaming bugs that truncated large responses are fixed and regression-tested, and it ships as nginx-module-zstd on every distribution we build for.

Read More...

NGINX Certificate Compression: RFC 8879 for Every Browser


by Danila Vershinin, August 29, 2026

NGINX certificate compression (RFC 8879) shrinks the TLS handshake by around 20% on every fresh connection, and it takes one directive. The catch is packaging: your distribution’s NGINX is too old to have the directive, and its OpenSSL was built without the brotli algorithm that Chrome is the only browser to ask for. Measured, and with the one directive that stops NGINX from starting.

Read More...

NGINX Zstd Decompression with the unzstd Module


by Danila Vershinin, March 29, 2026

Learn how to use the NGINX unzstd module for transparent Zstandard decompression. Adopt Zstd compression server-side while maintaining compatibility with clients that do not yet support it — the same pattern as the built-in gunzip module, but for Zstd.

Read More...

NGINX Concat Module: Combine CSS and JS Files


by Danila Vershinin, March 2, 2026

Learn how to use the NGINX concat module to combine multiple CSS and JavaScript files into a single HTTP response. Reduce request overhead, improve page load times, and understand when server-side concatenation still outperforms HTTP/2 multiplexing.

Read More...

NGINX Compression Vary: Fix Broken Vary Headers


by Danila Vershinin,

The NGINX compression_vary module replaces the standard gzip_vary directive with smarter Vary header handling. It merges multiple Vary headers into one, removes duplicates, and properly appends Accept-Encoding — preventing CDN cache fragmentation and improving caching efficiency across gzip, Brotli, and Zstandard compression.

Read More...

Accept-Encoding Normalization in NGINX for Better Caching


by Danila Vershinin, March 1, 2026

Learn how to normalize Accept-Encoding headers in NGINX to prevent cache variant explosion. The compression-normalize module standardizes client compression preferences, dramatically improving proxy cache hit rates when using Vary: Accept-Encoding.

Read More...

NGINX Unbrotli Module: Decompress Brotli Responses


by Danila Vershinin, February 14, 2026

Brotli compression delivers superior compression ratios compared to gzip, making it ideal for serving web content. However, what happens when your storage backend already has Brotli-compressed files, but some clients cannot decompress them? The unbrotli module solves this problem by transparently decompressing Brotli-encoded responses for clients that lack Brotli support. What Is the Unbrotli Module […]

Read More...

NGINX mod_zip: Dynamic ZIP Archives Guide


by Danila Vershinin, February 4, 2026

Learn how to use NGINX mod_zip module to dynamically assemble ZIP archives on-the-fly without loading files into memory. Perfect for download portals, file sharing services, and any application that needs to serve multiple files as a single ZIP archive with minimal server resources.

Read More...

NGINX Length Hiding Module: Does It Actually Prevent BREACH Attacks?


by Danila Vershinin, February 2, 2026

The NGINX length hiding module is often recommended for BREACH attack mitigation, but security research shows it only slows down attacks, not prevents them. Learn what actually protects against BREACH: SameSite cookies, CSRF token rotation, and proper application architecture.

Read More...

Brotli NGINX Rocky Linux 10: Installation Guide


by Danila Vershinin, January 28, 2026

Learn how to install and configure Brotli compression for NGINX on Rocky Linux 10 and AlmaLinux 10. This complete guide covers installation via GetPageSpeed repository, optimal compression settings, verification, and production-ready configurations.

Read More...