// Archive
Category: nginx
Coraza WAF on NGINX: The Go-Powered ModSecurity Replacement
Coraza is the memory-safe, Go-written WAF that speaks ModSecurity’s language and runs the OWASP CRS unchanged. Here is what libcoraza and the nginx-coraza module are, why we package them, and the fork-deadlock gotcha nobody warns you about.
JA3/JA4 TLS Fingerprinting: How It Works and Is It Safe to Block?
JA3 and JA4 TLS fingerprinting read the bytes of the ClientHello to spot the software behind a connection, even when it lies about its User-Agent. Here is how it works on nginx with ngx_ssl_fingerprint_module, and why blocking on a fingerprint is riskier than it looks.
How to cache pages in nginx with cache-turbo (no Varnish)
A page cache that lives inside nginx: no Varnish, no Lua, no second daemon. How cache-turbo uses stale-while-revalidate, L1/L2 tiers and single-flight refresh to keep your backend asleep under load.
Auto-Ban Abusive Clients in NGINX with the error-abuse module
A single misbehaving scraper can fire 40,000 requests an hour at a 404 it will never stop hitting, and your access log…
How to defend your webserver against vibe-coded AI exploit scanners and bots
Half of all web traffic is bots, and a growing slice are vibe-coded AI scanners written by a chatbot prompt. Here is the five-layer defense in depth that stops them: rate limiting, WAF, TLS hardening, request validation, access control, PHP and Docker hardening, plus the patching that does the most work.
WordPress Hardening Plugin for ModSecurity CRS: Block Attacks Without Touching Your PHP
WordPress XSS and SQL injection CVEs are exploding because AI now finds them faster than you can patch. This ModSecurity CRS plugin is the last wall: 40+ rules, typed-parameter SQLi blocking, rate limiting and GeoIP — before PHP ever boots.
HTTP/2 Bomb (CVE-2026-49975): The Memory DoS an AI Found
An AI noticed two ten-year-old HTTP/2 tricks could be combined into one critical exploit. CVE-2026-49975, the HTTP/2 Bomb, drives a single server to 32 GB of memory in seconds. Here is how it works on nginx, Apache, IIS, Envoy and Pingora — and how to defend it.
Hardened Roundcube Docker: The Webmail Container That Trusts Nobody
Our hardened Roundcube Docker image runs as nobody, can chown nothing, and treats every request as hostile. Here is the full unprivileged + WAF security model — and why default webmail containers are a liability.
njs + QuickJS-NG on NGINX: real JavaScript in your web server, finally
Stock njs is an ES5.1 subset with selected ES6 bits and a wall behind every modern feature. Rebuild it against QuickJS-NG and you get a real ES2023 runtime inside NGINX — async/await, BigInt, Proxy, dynamic import(), modern regex, Intl, the lot. Here is what changes, how the build wires it together, and copy-paste examples.
HTTP/3 and QUIC on NGINX: Real-World Setup, Tuning, and Gotchas (2026)
HTTP/3 finally works in mainline NGINX, but the config has sharp edges. Here is the real-world setup, the UDP sysctl knobs that actually matter, and the gotchas (alt-svc, MTU, ModSecurity, load balancers) that bite you in production.
What Is the BREACH Attack? How It Works and How to Stop It
BREACH is a compression side-channel attack that can leak CSRF tokens and other secrets over HTTPS. Here is how the BREACH attack works, why padding is weak protection, and how to prevent it properly.
What Is Zstd? NGINX, Angie, History and Browser Support
Zstd is the fast compression format suddenly showing up in browsers, package managers, and modern web stacks. Here is what it is, where it came from, which browsers and web servers support it, and how to use it with NGINX and Angie today.
How to Install ModSecurity and OWASP CRS on NGINX (Step-by-Step)
A beginner-friendly, step-by-step guide to installing ModSecurity and the OWASP Core Rule Set on NGINX for Debian and Ubuntu — from zero to a live WAF without taking your site down.
Zstd vs Brotli vs zlib-ng: The NGINX Compression Deep Dive
Zstd vs Brotli vs zlib-ng only makes sense once you separate browser encodings from compression engines. This deep dive covers support, CPU trade-offs, static vs dynamic compression, and the NGINX production patterns that actually work.
Angie 1.11.5 Released: 5 Security Fixes Explained
Angie 1.11.5 fixes five upstream security issues, including HTTP/3, OCSP, rewrite, SCGI/UWSGI, and charset handling hardening. Here is what changed and why it matters.
nginx 1.31.0 Released: Six CVEs Fixed, HTTP/2 Hardened, and a Buffer Overflow Worth Knowing About
nginx 1.31.0 is out — six security fixes including a critical buffer overflow in the rewrite module that could lead to arbitrary code execution. Here is what changed, what is at risk, and how to upgrade from our repo.
WordPress NGINX Configuration: PHP-FPM Tuning, FastCGI Cache and Redis (2026 Guide)
The complete WordPress + NGINX + PHP-FPM setup for Debian and Ubuntu: server block config, pool tuning, FastCGI caching for anonymous traffic, Redis object cache, Brotli compression, and security hardening with ModSecurity and Snuffleupagus.
NGINX Load Balancing: Upstream Config, Health Checks and Failover
NGINX load balancing distributes traffic across multiple backends with automatic failover. This guide covers all five load balancing algorithms, passive health checks, keepalive connection pooling, backup servers, and TCP/UDP load balancing.
NGINX Reverse Proxy Configuration: The Complete Setup Guide
A reverse proxy puts NGINX in front of your Node.js, Python, or PHP backend — handling SSL termination, caching, buffering, and security. This guide covers proxy_pass, upstream keepalive, caching, WebSocket proxying, and security headers.
NGINX Rate Limiting: Protect Your Server from Bots, Scrapers and Brute Force
NGINX rate limiting with limit_req_zone stops credential stuffing, scrapers, and DDoS floods before they reach your application. This guide covers burst handling, per-endpoint limits, IP whitelisting, WordPress-specific config, and Redis-backed cross-server limiting.
NGINX Brotli Compression: Install, Configure and Pre-Compress Static Assets
Brotli achieves 15-26% better compression than gzip on HTML, CSS, and JavaScript. This guide covers installing the NGINX Brotli module, configuring on-the-fly compression, pre-compressing static assets at level 11, and running Brotli alongside gzip.
NGINX on Debian 13 Trixie: What Changed and How to Upgrade
Debian 13 Trixie brings GCC 14, OpenSSL 3.3, PHP 8.4, systemd 256, and a newer Linux kernel. Here is what each change means for your NGINX and Angie setup, with a complete upgrade checklist.
NGINX on Debian 13 Trixie: Install, Modules and Modern Stack (2026)
Debian 13, codename Trixie, is the current Debian stable release, and the safest, most boring, most production-friendly Linux to run NGINX on…
PHP Snuffleupagus Tutorial — Harden PHP-FPM on Debian and Ubuntu (2026)
A friendly, jargon-free walkthrough: install Snuffleupagus from the myguard APT repo, pick the right rulebook for your stack (WordPress, Roundcube, generic PHP, internal agent), wire it into a PHP-FPM pool, and avoid the 5 traps that bite everyone the first time.
NGINX ModSecurity Setup on Debian and Ubuntu: WAF with OWASP Core Rule Set
ModSecurity v3 with the OWASP CRS blocks SQL injection, XSS, shell injection, and scanner traffic at the HTTP layer. This guide covers installation, CRS paranoia levels, WordPress tuning, false positive handling, and performance impact.
NGINX vs Apache Benchmark 2026: Performance, Memory and Real-World Throughput
NGINX beats Apache at static files and high concurrency; Apache wins on .htaccess flexibility and legacy app compatibility. Benchmark tables for static files, PHP-FPM, TLS handshakes, and memory under load.
How to Enable HTTP/3 on NGINX for Debian and Ubuntu (QUIC Guide 2026)
HTTP/3 runs on QUIC over UDP, eliminating TCP head-of-line blocking and enabling 0-RTT connection resumption. This guide covers installation, configuration, 0-RTT security, load balancer setup, and performance tuning.
OpenSSL 4.0 for NGINX: Upgrading openssl-nginx from 3.x to 4.0 — What Changes and Why It Matters
We just upgraded our openssl-nginx package from OpenSSL 3.x to OpenSSL 4.0. This guide explains what openssl-nginx is, what changed in version 4.0, the real pros and cons of upgrading, and how to do it safely on your Debian or Ubuntu server.
zstd-nginx-module: What Broke, What We Fixed, and Why It Matters
The first audit found 22 issues, but the last two weeks of git history added 14 more issue-level fixes. This updated guide covers the full 36-issue fork-window story, the runtime and build bugs, and the CI tests now guarding the module.
Angie Web Server: The Complete Guide — Review, ACME, Migration, API and HTTP/3
Everything about Angie in one place: what it adds over NGINX (native ACME, JSON API, dynamic upstreams, monthly releases), how it performs, how to migrate from NGINX in five minutes, full ACME certificate setup, Prometheus monitoring, and a side-by-side comparison with NGINX Plus.
Post-Quantum Cryptography with NGINX and Angie: ML-KEM, Hybrid TLS and Why Your HTTPS Needs a Quantum Upgrade
ML-KEM (Kyber) is in OpenSSL 3.5. Chrome has shipped hybrid X25519+ML-KEM since 2024. Here is what post-quantum TLS actually is, why it matters before quantum computers exist, and exactly how to configure NGINX and Angie for hybrid PQC key exchange today.
TLS Configuration for NGINX and Angie: The Complete Guide to Getting A+ on SSL Labs
Learn how to configure TLS for maximum security and achieve a perfect A+++ rating on SSLLabs. A comprehensive guide covering cipher selection, certificates, and cryptographic best practices.
Google PageSpeed for NGINX: What It Was, Why It Died, and What to Use Instead
Google PageSpeed was the magic module that automatically made your website faster — until Google quietly walked away from it. Here’s the full story: what PageSpeed actually did, why it’s now effectively dead on NGINX and Angie, and what you should use instead.
NGINX and Angie on Kubernetes: Helm, Ingress, WAF, HTTP/3 and TLS Guide
If your team has finally pushed everything into Kubernetes and you are wondering how to put a sensible web server in front…
openssl-nginx: The Dedicated OpenSSL Built Just for NGINX and Angie
Your server’s system OpenSSL juggles SSH, apt, Python, and your web server all at once. openssl-nginx says no to that. Here’s the dedicated OpenSSL built exclusively for NGINX and Angie — faster handshakes, post-quantum crypto, kernel TLS offload, zero legacy bloat.
Nginx & Angie: The Expert Guide to Maximum Performance and Security
The complete guide to building and running an optimised Nginx or Angie server on Debian and Ubuntu — HTTP/3, TLS 1.3, brotli, ModSecurity WAF, FastCGI caching, and eight layers of WordPress defence. Every directive explained.
NGINX NJS: Write JavaScript Inside Your Web Server (Yes, Really)
NJS is NGINX’s built-in JavaScript engine — write real JavaScript that runs inside your web server at request time, with no Node.js, no external services, and microsecond latency.
NGINX Lua Module: Your Web Server Just Got a Superpower
The NGINX Lua module (ngx_http_lua) runs Lua/LuaJIT scripts inside NGINX worker processes — Redis rate limiting, JWT auth, LRU caching, dynamic routing, all without blocking a single request.
Hardening PHP with PHP-Snuffleupagus: Block SQL Injection, XSS and Dangerous Functions Inside PHP-FPM
Most WAFs sit outside PHP and can be tricked. PHP-Snuffleupagus lives inside the PHP interpreter itself — blocking dangerous functions, SQL injection, XSS, type juggling, and deserialization attacks where attackers can’t reach. This is what defence in depth actually looks like.
nginx-minimal: The Lean NGINX Build for WordPress, PHP, and Docker (2026)
nginx-minimal strips 12 unused static modules from NGINX while keeping HTTP/3, TLS 1.3, jemalloc, zlib-ng, and all 50+ dynamic modules. Smaller binary, smaller attack surface, same blazing speed. Perfect for WordPress, PHP-FPM, and Docker.
nginx-core, nginx-full, nginx-light Are Gone — Here’s What to Use Instead (2026)
Debian deprecated nginx-core, nginx-full, and nginx-light. Don’t panic — the replacements are actually better. Here’s what happened, why it’s good news, and exactly what to install instead.