Parameter:
HTTPKeepAliveEnabledShort description: Enables HTTP Keep-Alive on the Domino HTTP stack so multiple HTTP requests can reuse the same TCP / TLS connection – noticeably reducing latency and TLS handshake overhead.
Profile
Parameter | HTTPKeepAliveEnabled |
Category | HTTP / Web |
Component | Server |
Available since | R5 |
Supported versions | 9.0.1, 10.0, 11.0, 12.0, 14.0, 14.5 |
GUI equivalent | Server document (Internet Protocols → HTTP → “Allow HTTP clients to browse databases” / Keep-Alive settings) |
Possible values | 0 = disabled (force Connection: close after every response), 1 = enabled (default, recommended) |
Description
HTTPKeepAliveEnabled controls whether the Domino HTTP stack supports persistent connections as defined in HTTP/1.1. With Keep-Alive, browsers, REST API clients, and reverse proxies can issue multiple requests over a single TCP / TLS connection instead of paying the cost of a new handshake for every resource. The benefit is most pronounced under TLS, where each new connection requires a full TLS handshake (certificate validation, key exchange, OCSP/CRL lookup) and where typical Domino UIs (Notes Web, Verse, Nomad Web, XPages, REST endpoints) load dozens of resources per page.In modern Domino versions the parameter is on by default. Disabling it is occasionally used as a short-term workaround for very specific reverse-proxy or load-balancer compatibility issues, but it almost always makes throughput and CPU load on the HTTP task substantially worse.
The number of requests served over a single Keep-Alive connection is bounded by
HTTPMaxRequestsPerPersistentConnection; the idle timeout is governed by the Input timeout and Output timeout settings in the Server document.Example configuration
HTTPKeepAliveEnabled=1 HTTPMaxRequestsPerPersistentConnection=100
Notes & pitfalls
- Default on modern Domino releases is
1– leave it enabled unless you are diagnosing a specific Keep-Alive-related issue.
- Disabling forces
Connection: closeon every response, multiplies TLS handshakes, and can drive CPU usage on the HTTP task and front-end load balancers significantly higher.
- Pairs with
HTTPMaxRequestsPerPersistentConnection(cap on requests per connection) and the Server document timeouts (Input / Output / Persistent connection timeout).
- In reverse-proxy setups (nginx, HAProxy, Apache, F5, Cloudflare) Keep-Alive must be configured consistently end-to-end – mismatched settings can cause sporadic 502 / 504 errors.
- For HTTP/2 / HTTP/3 endpoints, Keep-Alive is implicit; this
notes.iniparameter still applies to the HTTP/1.1 fallback.
- The change takes effect after a restart of the HTTP task (
tell http restartorrestart task http).