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...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 WAF Module: Lightweight Web Application Firewall
by Danila Vershinin, April 3, 2026
Install and configure the ngx_waf module to protect NGINX against SQL injection, XSS, malicious bots, and CC attacks. Includes IP blacklists, regex rules, rate limiting, an advanced rule DSL, and an Under Attack challenge mode.
Read More...NGINX Var Module: Dynamic Variable Functions for Config
by Danila Vershinin, April 2, 2026
The NGINX var module adds 70+ built-in functions for dynamic variable assignment — string manipulation, math, cryptographic hashing, regex, encoding, time operations, and IP matching — all without Lua or njs.
Read More...NGINX Dynamic Upstream: Consul & etcd Upsync Guide
by Danila Vershinin,
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 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 Fair Load Balancing Without NGINX Plus
by Danila Vershinin,
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 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...