NGINX Dynamic TLS Records: An Honest Benchmark in 2026
by Danila Vershinin, April 29, 2026
We rebuilt nginx-mod with Cloudflare’s 2015 dynamic TLS records patch and benchmarked it in a controlled rig with random interleave, CPU pinning, and 200 cold connections per condition. The “50% p95 TTFB win” we expected collapsed under noise control. Here are the honest numbers and what to do instead.
Read More...NGINX slow_start: Gradual Upstream Ramp-Up Without Plus
by Danila Vershinin, April 22, 2026
NGINX Plus has slow_start to ramp traffic to freshly-live upstream servers from zero to full weight. Open-source NGINX has the struct field but never wired the scheduler. NGINX-MOD ships the missing scheduler logic and this article proves it with runtime measurements from a Rocky Linux VM.
Read More...NGINX Immutable Module: Far-Future Cache-Control Headers
by Danila Vershinin, April 21, 2026
Cut wasted revalidation requests on versioned static assets. The NGINX immutable module emits RFC-compliant far-future Cache-Control headers with the immutable attribute, stale-while-revalidate, and stale-if-error in a single directive. This guide covers every directive, runtime-verified configs for Rocky Linux 10, the Magento 2 cache-busting pattern, and why it beats expires max.
Read More...NGINX Automatic Image Conversion: WebP and AVIF
by Danila Vershinin, April 5, 2026
Learn how to automatically convert and serve WebP and AVIF images in NGINX using the ngx_immerse filter module. This module transparently intercepts image responses from any source – static files, proxy_pass, or FastCGI – and converts them to modern formats based on browser support. No URL rewriting, no separate service, no application changes needed.
Read More...How Not to Write an NGINX Module: A WebP Case Study
by Danila Vershinin,
A deep technical analysis of ngx_webp – an NGINX module that converts images to WebP on-the-fly. It works, but violates nearly every principle of NGINX module development. We dissect what went wrong and show how to do it right.
Read More...NGINX WebAssembly: Extend NGINX with Proxy-Wasm Filters
by Danila Vershinin, April 4, 2026
Learn how to extend NGINX with WebAssembly using the ngx_wasm_module. Write custom filters in Rust, Go, or C++ using the Proxy-Wasm standard, and run them at near-native speed inside NGINX with full sandboxing — no C modules, no recompilation required.
Read More...NGINX Dynamic Upstream: Consul & etcd Upsync Guide
by Danila Vershinin, April 2, 2026
Learn how to dynamically manage NGINX upstream servers using Consul and etcd with the upsync module. Add, remove, and reconfigure backend servers without reloading NGINX. Includes comparison with native NGINX resolve, NGINX Plus API, and Angie alternatives.
Read More...NGINX Fair Load Balancing Without NGINX Plus
by Danila Vershinin, April 1, 2026
Learn how to configure NGINX fair load balancing to route traffic to the least busy backend server. An open-source alternative to the NGINX Plus least_time directive, the fair module tracks active requests across all worker processes for intelligent traffic distribution.
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 Traffic Accounting Module: Real-Time Metrics
by Danila Vershinin, March 28, 2026
Learn how to monitor NGINX traffic metrics in real time with the traffic accounting module. Get per-location request counts, bandwidth usage, latency, and HTTP status breakdowns — all aggregated in memory with minimal CPU and memory overhead, no log parsing required.
Read More...