Skip to main content

Parallel ESI for Varnish 6.0 LTS: vmod-pesi Now Packaged


by Danila Vershinin, September 17, 2026

Varnish processes ESI includes one after another. vmod-pesi fetches and assembles them in parallel, and GetPageSpeed now packages it for Varnish 6.0 LTS: a page with two 2-second fragments drops from 4.1 s to 2.05 s, verified on a clean Rocky Linux 10 install.

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 ESI: Replace Varnish for Magento 2


by Danila Vershinin, August 24, 2026

Replace Varnish with NGINX ESI for Magento 2. See the tested configuration, selective X-Magento-Tags purge, gzip-safe stitching, and benchmarks against Varnish OSS.

Read More...

NGINX Early Hints: HTTP 103 Benchmarked on Enterprise Linux


by Danila Vershinin, August 11, 2026

NGINX early hints support arrived in 1.29.0, but every stock Enterprise Linux, Debian and Ubuntu package still ships something older. We install a current NGINX from GetPageSpeed, configure the safe HTTP/2 gate, and benchmark what HTTP 103 does to LCP with interleaved arms and an A/A noise control.

Read More...

NGINX Microcaching: Full-Page Caching Without Varnish


by Danila Vershinin, June 23, 2026

NGINX microcaching the Varnish way: serve dynamic pages from RAM via core proxy_cache on tmpfs, with stale-while-revalidate and request coalescing.

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