211,000 HTTP/2 requests a second, against 155,000 for nginx The lower of two runs each, on 29 September 2026, on one desktop with 4 cores per server, counting only successful responses
What it does
It sits in front of an app and talks to the world over HTTP/1.1, HTTP/2 and HTTP/3. It gets and renews its HTTPS certificates by itself, and passes each request on to the right app.
Six web servers, one test
We ran Nexagate, nginx, HAProxy, rpxy, Pingora and Caddy on one desktop, with four CPU cores each, every one set up the way its own manual says. Only successful answers counted.
| Measure | Nexagate | nginx | Best of the rest |
|---|---|---|---|
| HTTP/2, requests a second | 211 to 219k | 155 to 159k | HAProxy, 142k |
| HTTPS, requests a second, on open connections | 126 to 128k | 90 to 92k | HAProxy, 103k |
| New connections, new secure connections a second | 15.1 to 15.2k | 7.5 to 7.8k | rpxy, 14.5k |
| A 100 MiB file, MiB a second | 15.8 to 16.8k | 2.1 to 2.3k | HAProxy, 14.3k |
| Memory at rest, MiB when idle | 4.2 to 5.7 | 33 | Pingora, 11 |
| CPU per request, µs per HTTP/2 request | 14.3 to 14.8 | 18.9 to 19.4 | HAProxy, 21.5 |
Measured on 29 September 2026. Higher is better for the first four, lower for the last two. Plain HTTP/1.1 is a tie with nginx, and an idle plain connection costs 6.5 to 6.9 KiB against 3.9 for nginx.