natbox.io

Blog / Proxy load test

We load-tested our shared HTTPS proxy: 15,000 connections, zero drops

9 November 2026 · Update · By Mohammad AlSaraf

On a NAT VPS, ports 80 and 443 of the public IPv4 address are shared by everyone on the node. A reviewer recently asked two fair questions: what happens to a connection the proxy can't place, and how much can the proxy actually take? We checked the first in our config and answered the second with a load test. Here is what we did and what we found, including the parts that weren't perfect.

How HTTPS reaches your server

A visitor connects to the shared IPv4 address on port 443. HAProxy reads only the domain name (SNI) and passes the encrypted connection to the customer's server. No name or an unknown name is refused.

Each node runs HAProxy in TCP mode. It reads one thing from the start of the TLS handshake, the domain name the browser asks for (SNI), looks it up in the list of domains our customers have linked and verified, and passes the still-encrypted connection to that customer's server. We never terminate TLS or hold your certificate.

How we tested

Results

Results table: 548 to 650 full TLS handshakes per second at 100 to 1,000 concurrent clients with zero errors; 5,000 and 15,000 long-lived connections all survived 60 seconds with every keep-alive request answered; proxy memory 47 and 85 MB.

New connections. Each one was a full TLS handshake, one HTTP request and a close, with no session reuse. With 100, 400 and 1,000 clients at once we got 548, 558 and 650 handshakes a second, over 53,000 in total, with zero errors.

Long-lived connections. We opened 5,000 and then 15,000 TLS connections, kept them for a minute and sent a request on every one of them every 20 seconds. All 15,000 stayed up and all 45,000 requests were answered. The proxy used 85 MB of memory for them, about 5 KB per connection, and under 2 CPU cores.

What the numbers mean, and what they don't

What this means for your server

If you host a website on natbox, the shared proxy is very unlikely to be what slows you down. Your own server, with its share of CPU, will run out of TLS handshakes long before the proxy does. If you want to skip the proxy completely, add an AAAA record: IPv6 visitors then connect straight to your server, with HTTP/3 if you enable it. You link a domain in the client area (guide).

We'll keep publishing numbers like these as natbox grows. If you'd like to see a test we haven't run, tell us at support@natbox.io.

Get new tutorials in Telegram. Follow @natboxio: every new post, plus short server tips.

More from the blog: Open a private admin page with an SSH tunnel, no open port needed, Disk full? Find what is filling your server, and clean it up safely, Keep commands running after you disconnect, with tmux. RSS feed.