Skip to main content

NGINX limit_req Per Hour, Day, Week, Month with NGINX-MOD


by Danila Vershinin, May 4, 2026

Stock NGINX rejects rate=10r/h. The NGINX-MOD limit_req_rate patch adds hourly, daily, weekly, monthly, and yearly rate units so SREs can express quotas the way they actually talk about them.

Read More...

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 XSLT Module: Transform XML Responses into HTML


by Danila Vershinin, April 6, 2026

Learn how to use the NGINX XSLT module to transform XML responses into HTML, RSS feeds into styled web pages, and XML API output into user-friendly formats – all at the web server level without modifying your backend.

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...

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 Upstream Jdomain: Dynamic DNS for Any NGINX Version


by Danila Vershinin, April 1, 2026

Learn how to use NGINX upstream jdomain for dynamic DNS resolution in upstream blocks. The jdomain module re-resolves domain names on the fly without reloads — essential for cloud and container deployments on older NGINX versions before the native resolve parameter.

Read More...

NGINX Upstream Resolve: Dynamic DNS for Load Balancing


by Danila Vershinin, March 31, 2026

Learn how to use the NGINX upstream resolve parameter for dynamic DNS resolution. Keep upstream server IPs current without restarts, handle DNS failover gracefully, and compare native NGINX 1.28+ support with the upstream-dynamic module, Angie, and NGINX Plus.

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...