Apache Settings
Adjust how Apache serves your websites and uses server resources.
Where to find it: Sign in as root, open Server > Configuration, then choose Apache Settings.
Available to: Root only.
Before you start
Apache Settings can affect server-wide or multi-account behavior. Review the current state, expected service impact, and rollback path before applying a change.
How to use it
- Find the setting for the Apache behavior you want to change.
- Review its description and supported values in the table below.
- Save, or use Save & Apply to apply it, then check a hosted website.
Available settings
These are the settings offered by the current SHM page. Defaults describe the baseline for an unset value; your saved configuration may differ. Review the effect and capacity of the server before changing a value.
Connections & Timeouts
Controls how Apache handles persistent connections and request timeouts.
| Setting | Values and baseline | Purpose and when to change it |
|---|---|---|
Persistent connections (KeepAlive)keep_alive | on / off Baseline: On | Enables HTTP persistent connections, allowing clients to reuse the same TCP connection for multiple requests. Keep On for better performance on most workloads. Turn Off only if you have a specific reason. |
KeepAlive timeout (KeepAliveTimeout)keep_alive_timeout | int; range 1–60 Baseline: 5 | How long (seconds) Apache keeps an idle KeepAlive connection open. Keep low to avoid tying up worker capacity. Increase only if clients frequently reuse connections. |
Max requests per KeepAlive (MaxKeepAliveRequests)max_keep_alive_requests | int; range 0–100000 Baseline: 50 | Maximum number of requests allowed per persistent connection. 0 means unlimited. Keep a reasonable limit to reduce long-lived connections. Use 0 only if you understand the impact. |
Request timeout (Timeout)timeout | int; range 1–600 Baseline: 300 | Overall request timeout (seconds). Affects slow clients and long-running requests. Default 300 seconds keeps Apache aligned with SHM proxy/PHP timeout defaults. Lower it only for hardened low-latency workloads. |
Proxy timeout (ProxyTimeout)proxy_timeout | int; range 1–600 Baseline: 300 | Timeout (seconds) for proxied requests when Apache is acting as a proxy. Default 300 seconds keeps Apache aligned with upstream application timeouts. |
Service open-file limit (systemd LimitNOFILE)service_nofile_limit | int; range 1024–1048576 Baseline: 65535 | Open-file limit written to the httpd systemd drop-in and apache limits.d file used by SHM apply/install flows. Apache has no Nginx-style worker_connections directive. This is the correct SHM-level file descriptor limit for httpd; SHM restarts httpd after apply so the parent process inherits it. |
Worker MPM
Controls the Apache worker MPM block. These directives apply only when mod_mpm_worker is loaded.
| Setting | Values and baseline | Purpose and when to change it |
|---|---|---|
Worker ServerLimitmpm_worker_server_limit | int; range 1–20000 Baseline: 10 | Upper limit for the number of child processes in worker MPM. Keep aligned with MaxRequestWorkers and ThreadsPerChild so Apache has enough process capacity without overcommitting the server. |
Worker StartServersmpm_worker_start_servers | int; range 1–1024 Baseline: 1 | Number of child server processes created at startup for worker MPM. Keep low unless the server receives heavy traffic immediately after restart. |
Worker ThreadLimitmpm_worker_thread_limit | int; range 1–4096 Baseline: 64 | Upper limit for ThreadsPerChild in worker MPM. Set this at or above ThreadsPerChild. Raising it requires a full Apache restart. |
Worker MinSpareThreadsmpm_worker_min_spare_threads | int; range 1–200000 Baseline: 32 | Minimum number of idle worker threads maintained by Apache. Keep enough spare threads for traffic bursts without forcing too many idle workers. |
Worker MaxSpareThreadsmpm_worker_max_spare_threads | int; range 1–200000 Baseline: 640 | Maximum number of idle worker threads maintained by Apache. Keep this at or above MinSpareThreads and below the capacity implied by ServerLimit and ThreadsPerChild. |
Worker ThreadsPerChildmpm_worker_threads_per_child | int; range 1–4096 Baseline: 64 | Number of threads created by each child process in worker MPM. Default 64 matches SHM high-capacity shared-hosting defaults. Keep it at or below ThreadLimit. |
Worker MaxRequestWorkersmpm_worker_max_request_workers | int; range 1–200000 Baseline: 640 | Maximum number of simultaneous requests served by worker MPM. Size this from real RAM/CPU capacity. Too high can overload the server under traffic spikes. |
Worker MaxConnectionsPerChildmpm_worker_max_connections_per_child | int; range 0–1000000 Baseline: 10000 | Maximum connections handled by a worker child before it is recycled. 0 disables recycling. Use a finite value to recycle long-lived processes and reduce memory drift. |
Worker GracefulShutdownTimeoutmpm_worker_graceful_shutdown_timeout | int; range 0–3600 Baseline: 1 | Seconds Apache waits for worker MPM children to exit during graceful shutdown. Low values make service restarts complete quickly. Increase only for workloads that need longer graceful drains. |
Event MPM
Controls the Apache event MPM block. These directives apply only when mod_mpm_event is loaded.
| Setting | Values and baseline | Purpose and when to change it |
|---|---|---|
Event ServerLimitmpm_event_server_limit | int; range 1–20000 Baseline: 10 | Upper limit for the number of child processes in event MPM. Keep aligned with MaxRequestWorkers and ThreadsPerChild so Apache has enough process capacity without overcommitting the server. |
Event StartServersmpm_event_start_servers | int; range 1–1024 Baseline: 1 | Number of child server processes created at startup for event MPM. Keep low unless the server receives heavy traffic immediately after restart. |
Event ThreadLimitmpm_event_thread_limit | int; range 1–4096 Baseline: 64 | Upper limit for ThreadsPerChild in event MPM. Set this at or above ThreadsPerChild. Raising it requires a full Apache restart. |
Event MinSpareThreadsmpm_event_min_spare_threads | int; range 1–200000 Baseline: 32 | Minimum number of idle worker threads maintained by Apache. Keep enough spare threads for traffic bursts without forcing too many idle workers. |
Event MaxSpareThreadsmpm_event_max_spare_threads | int; range 1–200000 Baseline: 640 | Maximum number of idle worker threads maintained by Apache. Keep this at or above MinSpareThreads and below the capacity implied by ServerLimit and ThreadsPerChild. |
Event ThreadsPerChildmpm_event_threads_per_child | int; range 1–4096 Baseline: 64 | Number of threads created by each child process in event MPM. Default 64 matches SHM high-capacity shared-hosting defaults. Keep it at or below ThreadLimit. |
Event MaxRequestWorkersmpm_event_max_request_workers | int; range 1–200000 Baseline: 640 | Maximum number of simultaneous requests served by event MPM. Size this from real RAM/CPU capacity. Too high can overload the server under traffic spikes. |
Event MaxConnectionsPerChildmpm_event_max_connections_per_child | int; range 0–1000000 Baseline: 10000 | Maximum connections handled by an event child before it is recycled. 0 disables recycling. Use a finite value to recycle long-lived processes and reduce memory drift. |
Event GracefulShutdownTimeoutmpm_event_graceful_shutdown_timeout | int; range 0–3600 Baseline: 1 | Seconds Apache waits for event MPM children to exit during graceful shutdown. Low values make service restarts complete quickly. Increase only for workloads that need longer graceful drains. |
Prefork MPM
Controls the Apache prefork MPM block. These directives apply only when mod_mpm_prefork is loaded.
| Setting | Values and baseline | Purpose and when to change it |
|---|---|---|
Prefork StartServersmpm_prefork_start_servers | int; range 1–20000 Baseline: 40 | Number of child server processes created at startup for prefork MPM. Higher values can reduce warm-up delay but consume more memory immediately after restart. |
Prefork MinSpareServersmpm_prefork_min_spare_servers | int; range 1–20000 Baseline: 10 | Minimum number of idle child processes maintained by prefork MPM. Keep enough spare processes for bursts without wasting memory. |
Prefork MaxSpareServersmpm_prefork_max_spare_servers | int; range 1–20000 Baseline: 40 | Maximum number of idle child processes maintained by prefork MPM. Keep this at or above MinSpareServers. |
Prefork ServerLimitmpm_prefork_server_limit | int; range 1–200000 Baseline: 640 | Upper limit for prefork child processes. Keep at or above MaxRequestWorkers and MaxClients. |
Prefork MaxClientsmpm_prefork_max_clients | int; range 1–200000 Baseline: 640 | Legacy Apache 2.2 name for the prefork worker limit, kept in the generated config for compatibility. Keep this aligned with MaxRequestWorkers. |
Prefork MaxRequestWorkersmpm_prefork_max_request_workers | int; range 1–200000 Baseline: 640 | Apache 2.4 prefork maximum number of simultaneous requests. Size this from real RAM capacity. Prefork workers are process-based and can consume much more memory than event/worker threads. |
Prefork MaxConnectionsPerChildmpm_prefork_max_connections_per_child | int; range 0–1000000 Baseline: 10000 | Maximum connections handled by a prefork child before it is recycled. 0 disables recycling. Use a finite value to recycle long-lived processes and reduce memory drift. |
Security & Privacy
Controls information exposure and potentially risky protocol behavior.
| Setting | Values and baseline | Purpose and when to change it |
|---|---|---|
Allow TRACE method (TraceEnable)trace_enable | on / off Baseline: Off | Enables or disables the HTTP TRACE method. Keep Off to reduce exposure to cross-site tracing attacks. |
Apache symlink and Options protectionsymlink_protection | on / off Baseline: On | Controls whether generated customer vhosts protect Apache .htaccess Options from enabling risky features. When On, SHM uses Nonfatal=Override and customer Options directives are ignored without HTTP 500, so lines such as Options -ExecCGI or Options +FollowSymLinks do not change Apache behavior. When Off, SHM disables this protection and allows customer .htaccess Options overrides, including FollowSymLinks and ExecCGI when Apache handlers permit them. Keep On. Turn Off only when the server owner deliberately accepts the symlink and CGI execution risk, then rebuild vhosts and retest affected sites. |
Server signature (ServerSignature)server_signature | on / off Baseline: Off | Controls whether Apache adds a footer with version info on server-generated pages (like error pages). Keep Off to reduce information leakage. |
Server tokens (ServerTokens)server_tokens | Prod, ProductOnly, Minimal, Major, Minor, OS, Full Baseline: ProductOnly | Controls how much server version information is included in response headers. Use Prod or ProductOnly to minimize information exposure. |
DNS lookups for client IPs (HostnameLookups)hostname_lookups | on / off Baseline: Off | When On, Apache does a reverse DNS lookup for client IPs. Keep Off for performance and to avoid DNS-related delays. |
Canonical name handling (UseCanonicalName)use_canonical_name | on / off Baseline: Off | Controls how Apache constructs self-referential URLs. Keep Off unless you have a specific URL-generation requirement. |
Logging & Status
Controls log verbosity and server-status visibility.
| Setting | Values and baseline | Purpose and when to change it |
|---|---|---|
Log level (LogLevel)log_level | emerg, alert, crit, error, warn, notice, info, debug, trace1, trace2, trace3, trace4, trace5, trace6, trace7, trace8 Baseline: warn | Controls how verbose Apache logs are. Use warn for most production servers. Use info/debug only for troubleshooting. |
Extended status (ExtendedStatus)extended_status | on / off Baseline: On | Enables extended status information for server-status monitoring. Keep On if you use server-status locally for monitoring. |
ETag behavior (FileETag)file_etag | None, All Baseline: None | Controls ETag generation for caching. Keep None for consistent caching behavior on shared hosting and clustered environments. |
SSL
TLS stapling controls.
| Setting | Values and baseline | Purpose and when to change it |
|---|---|---|
OCSP stapling (SSLUseStapling)ssl_use_stapling | on / off Baseline: Off | Enables OCSP stapling support (if configured) to speed up TLS handshakes. Enable only if you have a complete OCSP stapling setup and understand the requirements. |
Symlink protection and hosted-domain rebuilds
Apache symlink and Options protection is enabled by default. In this mode, customer .htaccess Options directives are ignored without causing HTTP 500; they cannot enable FollowSymLinks or ExecCGI through those overrides. Turning the protection off changes this boundary and should be a deliberate server-owner decision.
After changes that affect generated domain configuration, use Rebuild hosted domains and verify representative sites. Event, Worker, and Prefork have separate capacity settings; only the selected MPM uses its corresponding block. Save & Apply may restart Apache to apply process and open-file limits.
Theme color