W3Techs 13,241 (23 September 2026) puts nginx 75 on 30.9% of sites with a known server, level with Cloudflare 2 Server, Apache 129 on 22.0% and Caddy 7,400 on 1.0%. A modest speed test: ApacheBench 2.3, a 1,024-byte file, 50 concurrent clients, an Intel Core i9-7980XE (36 logical CPUs) under WSL2 6 ; Apache 2.4.66 with event and MaxKeepAliveRequests raised to nginx's 1,000; nginx 1.30.5 in Docker 514 ; median of three runs:
| Test | Apache 2.4.66 | nginx, published port | nginx, container IP |
|---|---|---|---|
| Keep-alive, 100,000 requests | 45,381 req/s | 41,879 req/s | 63,853 req/s |
| New connection each, 30,000 | 7,022 req/s | 10,305 req/s | 9,612 req/s |
Docker's port forwarding cost nginx a third of its keep-alive rate; ab runs on one core and counted 29 to 50 length failures per 100,000 Apache responses (none for nginx). nginx is tens of percent faster on small files, not multiples, and a page spending 20 ms in PHP and MySQL 524 largely hides even that. Choose on features:
Apache when you need .htaccess: shared hosting, WordPress 48 plugins that write rewrite rules, delegation without root. Run event with PHP-FPM.
nginx at the edge: many idle connections, heavy static traffic, TLS termination, HTTP/3, or as the proxy in front of Apache.
Caddy (v2.11.4, June 2026) for small new services: certificates from Let's Encrypt 1,144 (ZeroSSL 62,837 as fallback) with no TLS configuration, and HTTP/3 on by default; its ecosystem is the smallest.
nginx in front of Apache is common and sound, at the price of one more layer to debug.