| Server IP : 202.155.9.250 / Your IP : 216.73.217.135 Web Server : LiteSpeed System : Linux srv339029361 5.15.0-177-generic #187-Ubuntu SMP Sat Apr 11 22:54:33 UTC 2026 x86_64 User : rajaj4013 ( 1087) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/local/lsws/docs/ |
Upload File : |
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<title>OpenLiteSpeed Users' Manual - Server Tuning</title>
<meta name="description" content="OpenLiteSpeed Users' Manual - Server Tuning." />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="noindex">
<script>
(function () {
var theme = 'light';
var resolved = false;
try {
if (window.localStorage) {
var storedTheme = window.localStorage.getItem('hdoc.theme');
if (storedTheme === 'light' || storedTheme === 'dark') {
theme = storedTheme;
resolved = true;
}
}
} catch (err) {
}
if (!resolved && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
theme = 'dark';
}
document.documentElement.setAttribute('data-theme', theme);
document.documentElement.style.colorScheme = theme;
}());
</script>
<link rel="shortcut icon" href="img/favicon.ico" />
<link rel="stylesheet" type="text/css" href="css/hdoc.css">
<link rel="stylesheet" type="text/css" href="css/hdoc-product-accent.css">
<script src="hdoc-search-index.js" defer></script>
<script src="js/hdoc-search.js" defer></script>
</head>
<body>
<div class="doc-shell">
<header class="doc-topbar">
<a class="doc-brand" href="index.html" aria-label="OpenLiteSpeed Users' Manual">
<img src="img/ols_logo.svg" alt="OpenLiteSpeed logo" />
<strong>OpenLiteSpeed Users' Manual</strong>
</a>
<div class="doc-actions">
<button class="doc-menu-toggle" type="button" aria-label="Open menu" data-menu-toggle aria-expanded="false">
<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M3 12h18M3 6h18M3 18h18" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
</button>
<form class="doc-search" role="search" data-empty="Search pages and settings" data-no-results="No results found.">
<label class="sr-only" for="doc-search-input">Search the manual</label>
<div class="doc-search__box">
<input id="doc-search-input" type="search" autocomplete="off" placeholder="Search pages and settings" aria-controls="doc-search-results" />
<button type="submit">Search</button>
</div>
<div id="doc-search-results" class="doc-search__results" hidden></div>
</form>
</div>
<label class="doc-language"><select id="doc-language-switcher" name="doc_language" data-language-switcher aria-label="Language"><option value="ServTuning_Help.html" data-lang="en-US" selected>English</option><option value="es-ES/ServTuning_Help.html" data-lang="es-ES">Español</option><option value="de-DE/ServTuning_Help.html" data-lang="de-DE">Deutsch</option><option value="fr-FR/ServTuning_Help.html" data-lang="fr-FR">Français</option><option value="zh-CN/ServTuning_Help.html" data-lang="zh-CN">简体中文</option><option value="ja-JP/ServTuning_Help.html" data-lang="ja-JP">日本語</option></select></label>
<button class="doc-theme-toggle" type="button" aria-label="Toggle theme" data-theme-toggle data-theme-light-label="Light mode" data-theme-dark-label="Dark mode" title="Toggle theme">
<span class="doc-theme-toggle__icon" aria-hidden="true"></span>
</button>
</header>
<div class="doc-menu-backdrop" data-menu-backdrop></div>
<div class="pagewrapper" data-current-lang="en-US" data-supported-langs="["en-US","es-ES","de-DE","fr-FR","zh-CN","ja-JP"]"><aside class="sidetree"><div class="sidetree__masthead"><figure class="sidetree__figure"><img src="img/ols_logo.svg" alt="OpenLiteSpeed logo" /></figure><div class="sidetree__identity"><a class="sidetree__manual-link" href="index.html">Users' Manual</a><div class="sidetree__version">Version 1.9 — Rev. 4</div></div></div><nav class="sidetree__nav" aria-label="Table of Contents"><ul class="sidetree__list">
<li><a href="license.html">License</a></li>
<li><a href="intro.html">Introduction</a></li>
<li><a href="install.html">Installation/Uninstallation</a></li>
<li>
<a href="admin.html">Administration</a>
<ul class="level2">
<li><a href="ServerStat_Help.html">Service Manager</a></li>
<li><a href="Real_Time_Stats_Help.html">Real-Time Stats</a></li>
</ul>
</li>
<li><a href="security.html">Security</a></li>
<li>
<a href="config.html">Configuration</a>
<ul class="level2">
<li><a href="ServGeneral_Help.html">Server General</a></li>
<li><a href="ServLog_Help.html">Server Log</a></li>
<li><a class="current" href="ServTuning_Help.html">Server Tuning</a></li>
<li><a href="ServSecurity_Help.html">Server Security</a></li>
<li>
<a href="ExtApp_Help.html">External Apps</a>
<ul class="level3">
<li><a href="External_LSAPI.html">LSAPI App</a></li>
<li><a href="External_WS.html">Web Server (Proxy)</a></li>
<li><a href="External_FCGI.html">Fast CGI App</a></li>
<li><a href="External_FCGI_Auth.html">Fast CGI Authorizer</a></li>
<li><a href="External_SCGI.html">Simple CGI App</a></li>
<li><a href="External_Servlet.html">Servlet Engine</a></li>
<li><a href="External_PL.html">Piped Logger</a></li>
<li><a href="External_LB.html">Load Balancer</a></li>
<li><a href="External_UWSGI.html">uWSGI</a></li>
</ul>
</li>
<li><a href="ScriptHandler_Help.html">Script Handler</a></li>
<li><a href="App_Server_Help.html">App Server Settings</a></li>
<li><a href="Module_Help.html">Module Configuration</a></li>
<li><a href="Listeners_General_Help.html">Listener General</a></li>
<li><a href="Listeners_SSL_Help.html">Listener SSL</a></li>
<li><a href="Templates_Help.html">Virtual Host Templates</a></li>
<li><a href="VirtualHosts_Help.html">Virtual Host Registration</a></li>
<li><a href="VHGeneral_Help.html">Virtual Host General</a></li>
<li><a href="VHSecurity_Help.html">Virtual Host Security</a></li>
<li><a href="VHSSL_Help.html">Virtual Host SSL</a></li>
<li><a href="Rewrite_Help.html">Rewrite</a></li>
<li>
<a href="Context_Help.html">Context</a>
<ul class="level3">
<li><a href="Static_Context.html">Static Context</a></li>
<li><a href="Java_Web_App_Context.html">Java Web App Context</a></li>
<li><a href="Servlet_Context.html">Servlet Context</a></li>
<li><a href="FCGI_Context.html">Fast CGI Context</a></li>
<li><a href="SCGI_Context.html">Simple CGI Context</a></li>
<li><a href="LSAPI_Context.html">LSAPI Context</a></li>
<li><a href="Proxy_Context.html">Proxy Context</a></li>
<li><a href="CGI_Context.html">CGI Context</a></li>
<li><a href="LB_Context.html">Load Balancer Context</a></li>
<li><a href="Redirect_Context.html">Redirect Context</a></li>
<li><a href="App_Server_Context.html">App Server Context</a></li>
<li><a href="UWSGI_Context.html">uWSGI Context</a></li>
<li><a href="Module_Context.html">Module Handler Context</a></li>
</ul>
</li>
<li><a href="VHWebSocket_Help.html">Web Socket Proxy</a></li>
</ul>
</li>
<li><a href="webconsole.html">Web Console</a>
<ul class="level2">
<li><a href="AdminGeneral_Help.html">Admin Console General</a></li>
<li><a href="AdminSecurity_Help.html">Admin Console Security</a></li>
<li><a href="AdminListeners_General_Help.html">Admin Listener General</a></li>
<li><a href="AdminListeners_SSL_Help.html">Admin Listener SSL</a></li>
</ul>
</li>
</ul></nav></aside><article class="contentwrapper"><div class="nav-bar"><div class="prev">« <a href="ServLog_Help.html">Server Log</a></div><div class="center"><a href="config.html">Configuration</a></div><div class="next"><a href="ServSecurity_Help.html">Server Security</a> »</div></div>
<header class="doc-page-header"><h1>Server Tuning</h1></header><section class="doc-toc" aria-labelledby="top"><header class="doc-toc__header"><h2 id="top">Table of Contents</h2></header><section class="doc-toc__row"><h3 class="doc-toc__heading">General</h3><ul class="doc-toc__links"><li><a href="#shmDefaultDir">Default SHM Directory</a></li><li><a href="#proxyProtocol">PROXY Protocol</a></li></ul></section>
<section class="doc-toc__row"><h3 class="doc-toc__heading">Connection</h3><ul class="doc-toc__links"><li><a href="#maxConnections">Max Connections</a></li><li><a href="#maxSSLConnections">Max SSL Connections</a></li><li><a href="#connTimeout">Connection Timeout (secs)</a></li><li><a href="#maxKeepAliveReq">Max Keep-Alive Requests</a></li><li><a href="#keepAliveTimeout">Keep-Alive Timeout (secs)</a></li><li><a href="#sndBufSize">Send Buffer Size (bytes)</a></li><li><a href="#rcvBufSize">Receive Buffer Size (bytes)</a></li></ul></section>
<section class="doc-toc__row"><h3 class="doc-toc__heading">Request/Response</h3><ul class="doc-toc__links"><li><a href="#maxReqURLLen">Max Request URL Length (bytes)</a></li><li><a href="#maxReqHeaderSize">Max Request Header Size (bytes)</a></li><li><a href="#maxReqBodySize">Max Request Body Size (bytes)</a></li><li><a href="#maxDynRespHeaderSize">Max Dynamic Response Header Size (bytes)</a></li><li><a href="#maxDynRespSize">Max Dynamic Response Body Size (bytes)</a></li></ul></section>
<section class="doc-toc__row"><h3 class="doc-toc__heading">Static File Delivery Optimization</h3><ul class="doc-toc__links"><li><a href="#maxCachedFileSize">Max Cached Small File Size (bytes)</a></li><li><a href="#totalInMemCacheSize">Total Small File Cache Size (bytes)</a></li><li><a href="#maxMMapFileSize">Max MMAP File Size (bytes)</a></li><li><a href="#totalMMapCacheSize">Total MMAP Cache Size (bytes)</a></li><li><a href="#useSendfile">Use sendfile()</a></li><li><a href="#useAIO">Use Asynchronous I/O (AIO)</a></li><li><a href="#AIOBlockSize">AIO Block Size</a></li><li><a href="#fileETag">File ETag</a></li></ul></section>
<section class="doc-toc__row"><h3 class="doc-toc__heading">GZIP/Brotli Compression</h3><ul class="doc-toc__links"><li><a href="#enableGzipCompress">Enable Compression</a></li><li><a href="#compressibleTypes">Compressible Types</a></li><li><a href="#enableDynGzipCompress">Enable GZIP Dynamic Compression</a></li><li><a href="#gzipCompressLevel">GZIP Compression Level (Dynamic Content)</a></li><li><a href="#gzipAutoUpdateStatic">Auto Update Static File</a></li><li><a href="#gzipStaticCompressLevel">GZIP Compression Level (Static File)</a></li><li><a href="#brStaticCompressLevel">Brotli Compression Level (Static File)</a></li><li><a href="#gzipCacheDir">Static Cache Directory</a></li><li><a href="#gzipMaxFileSize">Max Static File Size (bytes)</a></li><li><a href="#gzipMinFileSize">Min Static File Size (bytes)</a></li></ul></section>
<section class="doc-toc__row"><h3 class="doc-toc__heading">SSL Global Settings</h3><ul class="doc-toc__links"><li><a href="#sslDefaultCiphers">Default Cipher Suite</a></li><li><a href="#sslStrongDhKey">SSL Strong DH Key</a></li><li><a href="#sslEnableMultiCerts">Enable Multiple SSL Certificates</a></li><li><a href="#sslSessionCache">Enable Session Cache</a></li><li><a href="#sslSessionCacheSize">Session Cache Size (bytes)</a></li><li><a href="#sslSessionCacheTimeout">Session Cache Timeout (secs)</a></li><li><a href="#sslSessionTickets">Enable Session Tickets</a></li><li><a href="#sslSessionTicketLifetime">SSL Session Ticket Lifetime (secs)</a></li><li><a href="#sslSessionTicketKeyFile">SSL Session Ticket Key File</a></li><li><a href="#sslOcspProxy">OCSP Proxy</a></li><li><a href="#sslStrictSni">Strict SNI Certificate</a></li><li><a href="#acme">AutoCert with ACME</a></li></ul></section>
<section class="doc-toc__row"><h3 class="doc-toc__heading">HTTP3/QUIC</h3><ul class="doc-toc__links"><li><a href="#quicEnable">Enable HTTP3/QUIC</a></li><li><a href="#quicShmDir">QUIC SHM Directory</a></li><li><a href="#quicVersions">HTTP3/QUIC Versions</a></li><li><a href="#quicCongestionCtrl">Congestion Control</a></li><li><a href="#quicCfcw">Connection Flow Control Window</a></li><li><a href="#quicMaxCfcw">Max Connection Flow Control Window</a></li><li><a href="#quicSfcw">Stream Flow Control Window</a></li><li><a href="#quicMaxSfcw">Max Stream Flow Control Window</a></li><li><a href="#quicMaxStreams">Max Concurrent Streams Per Connection</a></li><li><a href="#quicHandshakeTimeout">Handshake Timeout (secs)</a></li><li><a href="#quicIdleTimeout">Idle Timeout (secs)</a></li><li><a href="#quicEnableDPLPMTUD">Enable DPLPMTUD</a></li><li><a href="#quicBasePLPMTU">PLPMTU Base Value</a></li><li><a href="#quicMaxPLPMTU">PLPMTU Max Value</a></li></ul></section>
</section>
<section class="doc-content-flow"><div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="shmDefaultDir"><h3>Default SHM Directory<span class="ls-permlink"><a href="#shmDefaultDir"></a></span></h3></header><h4>Description</h4><p>Changes shared memory's default directory to the specified path. If the directory does not exist, it will be created. All SHM data will be stored in this directory unless otherwise specified.</p> <h4>Syntax</h4><p>path</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="proxyProtocol"><h3>PROXY Protocol<span class="ls-permlink"><a href="#proxyProtocol"></a></span></h3></header><h4>Description</h4><p>List of IPs/subnets for front-end proxies that communicate with this server using PROXY protocol. Once set, the server will use PROXY protocol for incoming connections from listed IPs/subnets or fall back to a regular connection if PROXY protocol is unavailable.<br/><br/> Applies to HTTP, HTTPS, HTTP2, and websocket connections.</p> <h4>Syntax</h4><p>Comma delimited list of IP addresses or sub-networks.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="maxConnections"><h3>Max Connections<span class="ls-permlink"><a href="#maxConnections"></a></span></h3></header><h4>Description</h4><p>Specifies the maximum number of concurrent connections that the server can accept. This includes both plain TCP connections and SSL connections. Once the maximum concurrent connections limit is reached, the server will close Keep-Alive connections when they complete active requests.</p> <h4>Syntax</h4><p>Integer number</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--info">Information</span> When the server is started by "root" user, the server will try to adjust the per-process file descriptor limits automatically, however, if this fails, you may need to increase this limit manually.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="maxSSLConnections"><h3>Max SSL Connections<span class="ls-permlink"><a href="#maxSSLConnections"></a></span></h3></header><h4>Description</h4><p>Specifies the maximum number of concurrent SSL connections the server will accept. Since total concurrent SSL and non-SSL connections cannot exceed the limit specified by <span class="tagl"><a href="#maxConnections">Max Connections</a></span>, the actual number of concurrent SSL connections allowed must be lower than this limit.</p> <h4>Syntax</h4><p>Integer number</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="connTimeout"><h3>Connection Timeout (secs)<span class="ls-permlink"><a href="#connTimeout"></a></span></h3></header><h4>Description</h4><p>Specifies the maximum connection idle time allowed during processing one request. The connection will be closed if it has been idle, i.e. no I/O activity, for this period of time.</p> <h4>Syntax</h4><p>Integer number</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--security">Security</span> Set this as low as you can to help recover dead connections during a potential DoS attack.</p> <h4>See Also</h4><p class="ls-text-small"><span class="tagl"><a href="#keepAliveTimeout">Keep-Alive Timeout (secs)</a></span></p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="maxKeepAliveReq"><h3>Max Keep-Alive Requests<span class="ls-permlink"><a href="#maxKeepAliveReq"></a></span></h3></header><h4>Description</h4><p>Specifies the maximum number of requests that can be served through a keep-alive (persistent) session. The connection will be closed once this limit is reached. You can set this limit for each virtual host as well.</p> <h4>Syntax</h4><p>Integer number</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--performance">Performance</span> Set this to a reasonably high value. A value of "1" or "0" will disable keep-alive.</p> <h4>See Also</h4><p class="ls-text-small">Virtual Host <span class="tagl"><a href="VirtualHosts_Help.html#vhMaxKeepAliveReq">Max Keep-Alive Requests</a></span></p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="keepAliveTimeout"><h3>Keep-Alive Timeout (secs)<span class="ls-permlink"><a href="#keepAliveTimeout"></a></span></h3></header><h4>Description</h4><p>Specifies the maximum idle time between requests from a keep-alive connection. If no new request is received during this period of time, the connection will be closed. This setting only applies to HTTP/1.1 connections. HTTP/2 connections have long keep-alive timeouts by design and are not affected by this setting.</p> <h4>Syntax</h4><p>Integer number</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--security">Security</span><span class="ls-badge ls-badge--performance">Performance</span> We recommend that you set this value just long enough to wait for subsequent requests from a client when there are more assets referenced by a single page that need to be loaded. Do not set this too long hoping that the next page will be served over the keep-alive connection. Keeping many idle keep-alive connections is a waste of server resources and could be taken advantage of by (D)DoS attacks. <span class="val">2-5</span> seconds is a reasonable range for most applications. LiteSpeed is highly efficient in a non-keep-alive environment.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="sndBufSize"><h3>Send Buffer Size (bytes)<span class="ls-permlink"><a href="#sndBufSize"></a></span></h3></header><h4>Description</h4><p>The sending buffer size of each TCP socket. <span class="val">512K</span> is the maximum allowed buffer size.</p> <h4>Syntax</h4><p>Integer number</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--performance">Performance</span> It is recommended to leave this value as "Not Set" or set to 0 to use the operating system's default buffer size.<br/> <span class="ls-badge ls-badge--performance">Performance</span> If your web site serves large static files, increase the send buffer size to improve performance.<br/> <span class="ls-badge ls-badge--performance">Performance</span> Setting this to a lower value will reduce throughput and memory usage per socket allowing the server to have more concurrent sockets when memory is a bottleneck.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="rcvBufSize"><h3>Receive Buffer Size (bytes)<span class="ls-permlink"><a href="#rcvBufSize"></a></span></h3></header><h4>Description</h4><p>The receiving buffer size of each TCP socket. <span class="val">512K</span> is the maximum allowed buffer size.</p> <h4>Syntax</h4><p>Integer number</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--performance">Performance</span> It is recommended to leave this value as "Not Set" or set to 0 to use the operating system's default buffer size.<br/> <span class="ls-badge ls-badge--performance">Performance</span> A large receive buffer will increase performance when processing incoming requests with large payloads, i.e. file uploads.<br/> <span class="ls-badge ls-badge--performance">Performance</span> Setting this to a lower value will reduce throughput and memory usage per socket allowing the server to have more concurrent sockets when memory is a bottleneck.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="maxReqURLLen"><h3>Max Request URL Length (bytes)<span class="ls-permlink"><a href="#maxReqURLLen"></a></span></h3></header><h4>Description</h4><p>Specifies the maximum size of a request URL. URL is the full text address used to access a server resource including the query string. Hard limit is <span class="val">65530</span> bytes. Values larger than this, such as <span class="val">64K</span> (6 bytes larger), will be treated as if <span class="val">65530</span> was used.<br/><br/> Default value: <span class="val">8192</span> or <span class="val">8K</span>.</p> <h4>Syntax</h4><p>Integer number</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--security">Security</span><span class="ls-badge ls-badge--performance">Performance</span> Set it reasonably low to reduce memory usage and help identify bogus requests and DoS attacks.<br/> 2-3K is big enough for most web sites unless the HTTP GET method is used with large query strings instead of POST.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="maxReqHeaderSize"><h3>Max Request Header Size (bytes)<span class="ls-permlink"><a href="#maxReqHeaderSize"></a></span></h3></header><h4>Description</h4><p>Specifies the maximum size of an HTTP request header including request URL. Hard limit is <span class="val">131072</span> bytes or 128K.<br/><br/> Default value: <span class="val">32768</span> or <span class="val">32K</span></p> <h4>Syntax</h4><p>Integer number</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--security">Security</span><span class="ls-badge ls-badge--performance">Performance</span> Set it reasonably low to reduce memory usage and help identify bogus requests and DoS attacks.<br/> 4-8K is big enough for most web sites under normal circumstances.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="maxReqBodySize"><h3>Max Request Body Size (bytes)<span class="ls-permlink"><a href="#maxReqBodySize"></a></span></h3></header><h4>Description</h4><p>Specifies the maximum size of an HTTP request body. For a 32Bit OS, <span class="val">2GB</span> is the hard limit. For a 64Bit OS, it is virtually unlimited.</p> <h4>Syntax</h4><p>Integer number</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--security">Security</span> To help prevent DoS attacks, try to constrain this limit to only what is really needed. Your swapping space must have enough free space to accommodate this limit.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="maxDynRespHeaderSize"><h3>Max Dynamic Response Header Size (bytes)<span class="ls-permlink"><a href="#maxDynRespHeaderSize"></a></span></h3></header><h4>Description</h4><p>Specifies the maximum header size of a dynamically generated response. Hard limit is <span class="val">131072</span> bytes or 128K.<br/><br/> Default value: <span class="val">32768</span> or <span class="val">32K</span></p> <h4>Syntax</h4><p>Integer number</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--performance">Performance</span> Set it reasonably low to help recognize bad responses dynamically generated by external applications.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="maxDynRespSize"><h3>Max Dynamic Response Body Size (bytes)<span class="ls-permlink"><a href="#maxDynRespSize"></a></span></h3></header><h4>Description</h4><p>Specifies the maximum body size of a dynamically generated response.</p> <h4>Syntax</h4><p>Integer number</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--performance">Performance</span> Set the limit reasonably low to help identify bad responses. It is not uncommon to malformed scripts to contain an infinite loop which leads to infinity-sized responses.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="maxCachedFileSize"><h3>Max Cached Small File Size (bytes)<span class="ls-permlink"><a href="#maxCachedFileSize"></a></span></h3></header><h4>Description</h4><p>Specifies the largest static file that will be cached in a pre-allocated memory buffer. Static files can be served in four different ways: memory buffer cache, memory-mapped cache, plain read/write, and sendfile(). Files whose size is smaller than this setting are served from memory buffer cache. Files whose size is larger than this setting, but smaller than the <span class="tagl"><a href="#maxMMapFileSize">Max MMAP File Size (bytes)</a></span> will be served from memory-mapped cache. Files whose size is larger than the <span class="tagl"><a href="#maxMMapFileSize">Max MMAP File Size (bytes)</a></span> will be served via plain read/write or sendfile(). It is optimal to serve static files smaller than 4K from the memory buffer cache.</p> <h4>Syntax</h4><p>Integer number</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="totalInMemCacheSize"><h3>Total Small File Cache Size (bytes)<span class="ls-permlink"><a href="#totalInMemCacheSize"></a></span></h3></header><h4>Description</h4><p>Specifies the total memory that can be allocated to the buffer cache in order to cache/serve small static files.</p> <h4>Syntax</h4><p>Integer number</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="maxMMapFileSize"><h3>Max MMAP File Size (bytes)<span class="ls-permlink"><a href="#maxMMapFileSize"></a></span></h3></header><h4>Description</h4><p>Specifies the largest static file that will be memory mapped (MMAP). Static files can be served in four different ways: memory buffer cache, memory-mapped cache, plain read/write, and sendfile(). Files whose size is smaller than the <span class="tagl"><a href="#maxCachedFileSize">Max Cached Small File Size (bytes)</a></span> are served from memory buffer cache. Files whose size is larger than the <span class="tagl"><a href="#maxCachedFileSize">Max Cached Small File Size (bytes)</a></span>, but smaller than the Max MMAP File Size will be served from memory-mapped cache. Files whose size is larger than the Max MMAP File Size will be served via plain read/write or sendfile(). Since the server has a 32bit address space (2GB), it is not recommended to memory map very large files.</p> <h4>Syntax</h4><p>Integer number</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="totalMMapCacheSize"><h3>Total MMAP Cache Size (bytes)<span class="ls-permlink"><a href="#totalMMapCacheSize"></a></span></h3></header><h4>Description</h4><p>Specifies the total memory that can be allocated for memory- mapped cache in order to cache/serve medium sized static files.</p> <h4>Syntax</h4><p>Integer number</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="useSendfile"><h3>Use sendfile()<span class="ls-permlink"><a href="#useSendfile"></a></span></h3></header><h4>Description</h4><p>Specifies whether to use the sendfile() system call to serve static files. Static files can be served in four different ways: memory buffer cache, memory-mapped cache, plain read/write, and sendfile(). Files smaller than the <span class="tagl"><a href="#maxCachedFileSize">Max Cached Small File Size (bytes)</a></span> are served from memory buffer cache. Files larger than the <span class="tagl"><a href="#maxCachedFileSize">Max Cached Small File Size (bytes)</a></span> but smaller than the <span class="tagl"><a href="#maxMMapFileSize">Max MMAP File Size (bytes)</a></span> will be served from memory-mapped cache. Files larger than the <span class="tagl"><a href="#maxMMapFileSize">Max MMAP File Size (bytes)</a></span> will be served via plain read/write or sendfile(). Sendfile() is a "zero copy" system call that can greatly reduce CPU utilization when serving very large static files. Sendfile() requires an optimized network card kernel driver and thus may not be suitable for some small-vendor network adapters.</p> <h4>Syntax</h4><p>Select from radio box</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="useAIO"><h3>Use Asynchronous I/O (AIO)<span class="ls-permlink"><a href="#useAIO"></a></span></h3></header><h4>Description</h4><p>Specifies whether to use asynchronous I/O to serve static files along with the AIO implementation to use. Options <span class="val">LINUX AIO</span> and <span class="val">io_uring</span> are only available on Linux machines.<br/><br/> Default value: <span class="val">No</span></p> <h4>Syntax</h4><p>Select from drop down list</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--performance">Performance</span> AIO can help improve performance in servers with a high I/O wait.<br/> <span class="ls-badge ls-badge--attention">Attention</span> When <span class="val">io_uring</span> is selected but not supported on the current machine, <span class="val">Linux AIO</span> will be used instead.</p> <h4>See Also</h4><p class="ls-text-small"><span class="tagl"><a href="#AIOBlockSize">AIO Block Size</a></span></p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="AIOBlockSize"><h3>AIO Block Size<span class="ls-permlink"><a href="#AIOBlockSize"></a></span></h3></header><h4>Description</h4><p>Specifies the sent block size for AIO. This block size multiplied by the total files being processed should be less than the physical memory of the server, otherwise, AIO will not help. If your server has enough memory, you can choose a bigger size.<br/><br/> Default value: <span class="val">128K</span></p> <h4>Syntax</h4><p>Select from drop down list</p> <h4>See Also</h4><p class="ls-text-small"><span class="tagl"><a href="#useAIO">Use Asynchronous I/O (AIO)</a></span></p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="fileETag"><h3>File ETag<span class="ls-permlink"><a href="#fileETag"></a></span></h3></header><h4>Description</h4><p>Specifies whether to use a file's inode, last-modified time, and size attributes to generate the ETag HTTP response header for static files. All three attributes are enabled by default. If you plan to serve the same file out of mirrored servers, you should not include inode; otherwise, the ETag generated for one file will be different on different servers.</p> <h4>Syntax</h4><p>Select from checkbox</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="enableGzipCompress"><h3>Enable Compression<span class="ls-permlink"><a href="#enableGzipCompress"></a></span></h3></header><h4>Description</h4><p>Enables GZIP/Brotli compression for both static and dynamic responses.<br/><br/> Default value: Yes</p> <h4>Syntax</h4><p>Select from radio box</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--performance">Performance</span> Enable it to save network bandwidth. Text-based responses such as html, css, and javascript files benefit the most and on average can be compressed to half of their original size.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="compressibleTypes"><h3>Compressible Types<span class="ls-permlink"><a href="#compressibleTypes"></a></span></h3></header><h4>Description</h4><p>Specifies what MIME types are allowed to be compressed. Leave this setting unset or enter <span class="val">default</span> to use the server built-in default list which should already cover most mime-types.<br/><br/> Default value: <span class="val">text/*,application/x-javascript,application/javascript,application/xml,image/svg+xml,application/rss+xml, application/json,application/vnd.ms-fontobject,application/x-font,application/x-font-opentype, application/x-font-truetype,application/x-font-ttf,font/eot,font/opentype,font/otf,font/ttf,image/x-icon, image/vnd.microsoft.icon,application/xhtml+xml</span></p> <h4>Syntax</h4><p>MIME type list separated by commas. Wild card "*" and negate sign "!" are allowed, such as text/*, !text/js.</p> <h4>Example</h4><div class="ls-example">If you want to compress text/* but not text/css, you can have a rule like <span class="val">text/*, !text/css</span>. "!" will exclude that MIME type.</div><h4>Tips</h4><p><span class="ls-badge ls-badge--performance">Performance</span> Only allow types that will benefit from GZIP/Brotli compression. Binary files such as gif/png/jpeg images and flash files do not benefit from compression.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="enableDynGzipCompress"><h3>Enable GZIP Dynamic Compression<span class="ls-permlink"><a href="#enableDynGzipCompress"></a></span></h3></header><h4>Description</h4><p>Controls GZIP compression for dynamically generated responses.<br/><br/> For this setting to have an effect, GZIP compression must be enabled.<br/><br/> Default value: Yes</p> <h4>Syntax</h4><p>Select from radio box</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--performance">Performance</span> Compressing dynamic responses increases CPU and memory utilization but saves network bandwidth.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="gzipCompressLevel"><h3>GZIP Compression Level (Dynamic Content)<span class="ls-permlink"><a href="#gzipCompressLevel"></a></span></h3></header><h4>Description</h4><p>Specifies the level of GZIP compression applied to dynamic content. Ranges from <span class="val">1</span> (lowest) to <span class="val">9</span> (highest).<br/><br/> This setting will only take effect when GZIP compression and <span class="tagl"><a href="#enableDynGzipCompress">Enable GZIP Dynamic Compression</a></span> are enabled.<br/><br/> Default value: 6</p> <h4>Syntax</h4><p>Number between 1 and 9.</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--performance">Performance</span> Higher compression level will use more memory and CPU cycles. You can set it to a higher level if your machine has additional power. There is not much difference between 6 and 9, except that 9 uses many more CPU cycles.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="gzipAutoUpdateStatic"><h3>Auto Update Static File<span class="ls-permlink"><a href="#gzipAutoUpdateStatic"></a></span></h3></header><h4>Description</h4><p>Specifies whether to let the server automatically create/update GZIP/Brotli-compressed versions of compressible static files or not. If set to <span class="val">Yes</span>, when a file with a MIME type listed in <span class="tagl"><a href="#compressibleTypes">Compressible Types</a></span> is requested, the server may create or update the corresponding compressed version of the file depending on the compressed file's timestamp. This compressed file is created under the <span class="tagl"><a href="#gzipCacheDir">Static Cache Directory</a></span>. The filename is based on a MD5 hash of the path of the original file.<br/><br/> Default value: Yes</p> <h4>Syntax</h4><p>Select from radio box</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="gzipStaticCompressLevel"><h3>GZIP Compression Level (Static File)<span class="ls-permlink"><a href="#gzipStaticCompressLevel"></a></span></h3></header><h4>Description</h4><p>Specifies the level of GZIP compression applied to static files. Ranges from <span class="val">1</span> (lowest) to <span class="val">9</span> (highest).<br/><br/> This setting will only take effect when GZIP compression and <span class="tagl"><a href="#gzipAutoUpdateStatic">Auto Update Static File</a></span> are enabled.<br/><br/> Default value: 6</p> <h4>Syntax</h4><p>Number between 1 and 9.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="brStaticCompressLevel"><h3>Brotli Compression Level (Static File)<span class="ls-permlink"><a href="#brStaticCompressLevel"></a></span></h3></header><h4>Description</h4><p>Specifies the level of Brotli compression applied to static files. Ranges from <span class="val">0</span> (disabled) to <span class="val">11</span> (highest).<br/><br/> When set to <span class="val">0</span>, brotli compression will be disabled globally.<br/><br/> Default value: 5</p> <h4>Syntax</h4><p>Number between 0 and 11.</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--performance">Performance</span> Save network bandwidth. Text-based responses such as html, css, and javascript files benefit the most and on average can be compressed to half of their original size.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="gzipCacheDir"><h3>Static Cache Directory<span class="ls-permlink"><a href="#gzipCacheDir"></a></span></h3></header><h4>Description</h4><p>Specifies the path of the directory used to store compressed files for static content.<br/><br/> Default value: <span class="tagl"><a href="#swappingDir">Swapping Directory</a></span>.</p> <h4>Syntax</h4><p>Directory Path</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="gzipMaxFileSize"><h3>Max Static File Size (bytes)<span class="ls-permlink"><a href="#gzipMaxFileSize"></a></span></h3></header><h4>Description</h4><p>Specifies the maximum size of a static file for which the server will create a compressed file automatically.<br/><br/> Default value: 10M</p> <h4>Syntax</h4><p>Number in bytes not less than 1K.</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--performance">Performance</span> It is not recommended to have the server create/update compressed files for large files. Compressing blocks an entire server process and no further requests can be processed until the compression is completed.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="gzipMinFileSize"><h3>Min Static File Size (bytes)<span class="ls-permlink"><a href="#gzipMinFileSize"></a></span></h3></header><h4>Description</h4><p>Specifies the minimum size of a static file for which the server will create a corresponding compressed file.<br/><br/> Default value: 200</p> <h4>Syntax</h4><p>Number in bytes not less than 200.</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--info">Information</span> It is not necessary to compress very small files as the bandwidth saving is negligible.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="sslDefaultCiphers"><h3>Default Cipher Suite<span class="ls-permlink"><a href="#sslDefaultCiphers"></a></span></h3></header><h4>Description</h4><p>Default cipher suite for SSL certificates.<br/><br/> Default value: Server Internal Default (Based on current best practices)</p> <h4>Syntax</h4><p>Colon-separated string of cipher specifications.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="sslStrongDhKey"><h3>SSL Strong DH Key<span class="ls-permlink"><a href="#sslStrongDhKey"></a></span></h3></header><h4>Description</h4><p>Specifies whether to use 2048 or 1024 bit DH keys for SSL handshakes. If set to "Yes", 2048 bit DH keys will be used for 2048 bit SSL keys and certificates. 1024 bit DH keys will still be used in other situations. Default is "Yes".<br/><br/> Earlier versions of Java do not support DH key size higher than 1024 bits. If Java client compatibility is required, this should be set to "No".</p> <h4>Syntax</h4><p>radio</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="sslEnableMultiCerts"><h3>Enable Multiple SSL Certificates<span class="ls-permlink"><a href="#sslEnableMultiCerts"></a></span></h3></header><h4>Description</h4><p>Allows listeners/vhosts to set multiple SSL certificates. If multiple certificates are enabled, the certificates/keys are expected to follow a naming scheme. If the cert is named server.crt, other possible cert names are server.crt.rsa, server.crt.dsa, server.crt.ecc. If "Not Set", defaults to "No".</p> <h4>Syntax</h4><p>Select from radio box</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="sslSessionCache"><h3>Enable Session Cache<span class="ls-permlink"><a href="#sslSessionCache"></a></span></h3></header><h4>Description</h4><p>Enables session ID caching using OpenSSL's default setting. Server-level setting must be set to "Yes" for Virtual Host setting to take effect.<br/><br/> Default values:<br/> <b>Server-level:</b> Yes<br/> <b>VH-Level:</b> Yes</p> <h4>Syntax</h4><p>Select from radio box</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="sslSessionCacheSize"><h3>Session Cache Size (bytes)<span class="ls-permlink"><a href="#sslSessionCacheSize"></a></span></h3></header><h4>Description</h4><p>Sets the maximum number of SSL session IDs to store in the cache. Default is 1,000,000.</p> <h4>Syntax</h4><p>Integer number</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="sslSessionCacheTimeout"><h3>Session Cache Timeout (secs)<span class="ls-permlink"><a href="#sslSessionCacheTimeout"></a></span></h3></header><h4>Description</h4><p>This value determines how long a session ID will be valid within the cache before renegotiation is required. Default is 3,600.</p> <h4>Syntax</h4><p>Integer number</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="sslSessionTickets"><h3>Enable Session Tickets<span class="ls-permlink"><a href="#sslSessionTickets"></a></span></h3></header><h4>Description</h4><p>Enables session tickets using OpenSSL's default session ticket setting. Server-level setting must be set to "Yes" for Virtual Host setting to take effect.<br/><br/> Default values:<br/> <b>Server-level:</b> Yes<br/> <b>VH-Level:</b> Yes</p> <h4>Syntax</h4><p>Select from radio box</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="sslSessionTicketLifetime"><h3>SSL Session Ticket Lifetime (secs)<span class="ls-permlink"><a href="#sslSessionTicketLifetime"></a></span></h3></header><h4>Description</h4><p>This value determines how long a session ticket will be valid before a renegotiation is required. Default is 3,600.</p> <h4>Syntax</h4><p>Integer number</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="sslSessionTicketKeyFile"><h3>SSL Session Ticket Key File<span class="ls-permlink"><a href="#sslSessionTicketKeyFile"></a></span></h3></header><h4>Description</h4><p>Allows the SSL Ticket Key to be created/maintained by an administrator. The file must be 48 bytes long. If this option is left empty, the load balancer will generate and rotate its own set of keys.<br/><br/> IMPORTANT: To maintain forward secrecy, it is strongly recommended to change the key every <b>SSL Session Ticket Lifetime</b> seconds. If this cannot be done, it is recommended to leave this field empty.</p> <h4>Syntax</h4><p>Path</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="sslOcspProxy"><h3>OCSP Proxy<span class="ls-permlink"><a href="#sslOcspProxy"></a></span></h3></header><h4>Description</h4><p>Socket address used as the proxy server address for OCSP verification. Leave this setting unset If not using a proxy.<br/><br/> Default value: <span class="val">not set</span></p> <h4>Syntax</h4><p>Socket Address</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="sslStrictSni"><h3>Strict SNI Certificate<span class="ls-permlink"><a href="#sslStrictSni"></a></span></h3></header><h4>Description</h4><p>Specifies whether to strictly require a dedicated virtual host certificate configuration. When enabled, SSL connections to virtual hosts without a dedicated certificate configuration will fail instead of using a default catch-all certificate.<br/><br/> Default value: <span class="val">No</span></p> <h4>Syntax</h4><p>Select from radio box</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="acme"><h3>AutoCert with ACME<span class="ls-permlink"><a href="#acme"></a></span></h3></header><h4>Description</h4><p>Automatically generate and renew SSL certificates using the Automatic Certificate Management Environment (ACME) certifier protocol (once configured). See more here:<br/> <a href=" https://docs.openlitespeed.org/config/advanced/acme/ " target="_blank" rel="noopener noreferrer"> Automatic SSL Certificates (ACME) </a><br/><br/> Accepted values:<br/> <span class="val">On</span> - Enable automatic certificate generation and renewal. Virtual Hosts can override this setting individually.<br/> <span class="val">Off</span> - Disable, but allow Virtual Hosts to override this setting individually.<br/> <span class="val">Disabled</span> - (Server level only) Force ACME off server-wide; Virtual Hosts cannot override this setting.<br/><br/> Default values:<br/> <b>Server level:</b> Off<br/> <b>VH level:</b> Inherit Server level setting</p> <h4>Syntax</h4><p>Select from drop down list</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="quicEnable"><h3>Enable HTTP3/QUIC<span class="ls-permlink"><a href="#quicEnable"></a></span></h3></header><h4>Description</h4><p>Enables the HTTP3/QUIC network protocol server wide. Default value is <span class="val">Yes</span>.</p> <h4>Syntax</h4><p>Select from radio box</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--info">Information</span> When this setting is set to <span class="val">Yes</span>, HTTP3/QUIC can still be disabled at the listener level through the <span class="tagl"><a href="Listeners_SSL_Help.html#allowQuic">Open HTTP3/QUIC (UDP) Port</a></span> setting, or at the virtual host level through the <span class="tagl"><a href="VHSSL_Help.html#vhEnableQuic">Enable HTTP3/QUIC</a></span> setting.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="quicShmDir"><h3>QUIC SHM Directory<span class="ls-permlink"><a href="#quicShmDir"></a></span></h3></header><h4>Description</h4><p>Specifies the directory used to save QUIC data to shared memory.<br/><br/> By default, the server's default SHM directory, <span class="val">/dev/shm</span>, will be used.</p> <h4>Syntax</h4><p>Path</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--info">Information</span> A RAM based partition, such as <span class="val">/dev/shm</span>, is recommended.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="quicVersions"><h3>HTTP3/QUIC Versions<span class="ls-permlink"><a href="#quicVersions"></a></span></h3></header><h4>Description</h4><p>A list of enabled HTTP3/QUIC versions. This setting should only be used to limit HTTP3/QUIC support to the versions listed and is best left blank.</p> <h4>Syntax</h4><p>Comma-separated list</p> <h4>Example</h4><div class="ls-example">h3-29, h3-Q050</div><h4>Tips</h4><p><span class="ls-badge ls-badge--info">Information</span> It is recommended to leave this setting blank to have the the best configuration applied automatically.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="quicCongestionCtrl"><h3>Congestion Control<span class="ls-permlink"><a href="#quicCongestionCtrl"></a></span></h3></header><h4>Description</h4><p>The congestion control algorithm used. This can be set manually or left up to the QUIC library in use by selecting the "Default" option.<br/><br/> Default value: Default</p> <h4>Syntax</h4><p>Select from drop down list</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="quicCfcw"><h3>Connection Flow Control Window<span class="ls-permlink"><a href="#quicCfcw"></a></span></h3></header><h4>Description</h4><p>The initial size of the buffer allocated for a QUIC connection. Default value is <span class="val">1.5M</span>.</p> <h4>Syntax</h4><p>Number between 64K and 512M</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--info">Information</span> A larger window size will use more memory.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="quicMaxCfcw"><h3>Max Connection Flow Control Window<span class="ls-permlink"><a href="#quicMaxCfcw"></a></span></h3></header><h4>Description</h4><p>Specifies the maximum size that a connection flow control window buffer is allowed to reach due to window auto-tuning.<br/><br/> Default value is <span class="val">0</span>, which means that the value of <span class="tagl"><a href="ServTuning_Help.html#quicCfcw">Connection Flow Control Window</a></span> is used and no auto-tuning is performed.</p> <h4>Syntax</h4><p>0 or a number between 64K and 512M</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--info">Information</span> A larger window size will use more memory.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="quicSfcw"><h3>Stream Flow Control Window<span class="ls-permlink"><a href="#quicSfcw"></a></span></h3></header><h4>Description</h4><p>The initial amount of data a QUIC connection is willing to receive per stream. Default value is <span class="val">1M</span>.</p> <h4>Syntax</h4><p>Number between 64K and 128M</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--info">Information</span> A larger window size will use more memory.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="quicMaxSfcw"><h3>Max Stream Flow Control Window<span class="ls-permlink"><a href="#quicMaxSfcw"></a></span></h3></header><h4>Description</h4><p>Specifies the maximum size that a stream flow control window is allowed to reach due to window auto-tuning.<br/><br/> Default value is <span class="val">0</span>, which means that the value of <span class="tagl"><a href="ServTuning_Help.html#quicSfcw">Stream Flow Control Window</a></span> is used and no auto-tuning is performed.</p> <h4>Syntax</h4><p>0 or a number between 64K and 128M</p> <h4>Tips</h4><p><span class="ls-badge ls-badge--info">Information</span> A larger window size will use more memory.</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="quicMaxStreams"><h3>Max Concurrent Streams Per Connection<span class="ls-permlink"><a href="#quicMaxStreams"></a></span></h3></header><h4>Description</h4><p>The maximum number of concurrent streams allowed per QUIC connection. Default value is <span class="val">100</span>.</p> <h4>Syntax</h4><p>Integer number between 10 and 1000</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="quicHandshakeTimeout"><h3>Handshake Timeout (secs)<span class="ls-permlink"><a href="#quicHandshakeTimeout"></a></span></h3></header><h4>Description</h4><p>The time in seconds a new QUIC connection is given to complete its handshake, after which the connection is aborted. Default value is <span class="val">10</span>.</p> <h4>Syntax</h4><p>Integer number between 1 and 15</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="quicIdleTimeout"><h3>Idle Timeout (secs)<span class="ls-permlink"><a href="#quicIdleTimeout"></a></span></h3></header><h4>Description</h4><p>The time in seconds after which an idle QUIC connection will be closed. Default value is <span class="val">30</span>.</p> <h4>Syntax</h4><p>Integer number between 10 and 30</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="quicEnableDPLPMTUD"><h3>Enable DPLPMTUD<span class="ls-permlink"><a href="#quicEnableDPLPMTUD"></a></span></h3></header><h4>Description</h4><p>Enable Datagram Packetization Layer Path Maximum Transmission Unit Discovery (DPLPMTUD).<br/><br/> <b> <a href=" https://tools.ietf.org/html/rfc8899 " target="_blank" rel="noopener noreferrer"> Background on DPLPMTUD (RFC 8899) </a> </b><br/><br/> Default value: Yes</p> <h4>Syntax</h4><p>Select from radio box</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="quicBasePLPMTU"><h3>PLPMTU Base Value<span class="ls-permlink"><a href="#quicBasePLPMTU"></a></span></h3></header><h4>Description</h4><p>The maximum value of PLPMTU (maximum packet size without headers) in bytes that QUIC will use by default. Setting this to <span class="val">0</span> will allow QUIC to pick the size.<br/><br/> This setting should be set lower than <span class="tagl"><a href="#quicMaxPLPMTU">PLPMTU Max Value</a></span>.<br/><br/> Default value: 0</p> <h4>Syntax</h4><p>0 or integer number between 1200 and 65527</p> </article> </div>
<div class="helpitem"><article class="ls-helpitem"><header class="ls-helpitem__header" id="quicMaxPLPMTU"><h3>PLPMTU Max Value<span class="ls-permlink"><a href="#quicMaxPLPMTU"></a></span></h3></header><h4>Description</h4><p>The PLPMTU (maximum packet size without headers) probe upper limit in bytes. This setting is used to limit the "maximum packet size" in the DPLPMTUD search space. Setting this to <span class="val">0</span> will allow QUIC to pick the size (By default LSQUIC assumes that MTU is 1,500 bytes (Ethernet)).<br/><br/> This setting should be set higher than <span class="tagl"><a href="#quicBasePLPMTU">PLPMTU Base Value</a></span>.<br/> Default value: 0</p> <h4>Syntax</h4><p>0 or integer number between 1200 and 65527</p> </article> </div>
</section>
</article></div><button class="doc-back-to-top" type="button" aria-label="Back to top" data-back-to-top><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M12 19V5" /><path d="m6 11 6-6 6 6" /></svg><span class="sr-only">Back to top</span></button><footer class="copyright">Copyright © 2013-2026. <a href="https://www.litespeedtech.com">LiteSpeed Technologies Inc.</a> All rights reserved.</footer>
</div>
</body>
</html>