Configure LiteSpeed Web Server¶
Most of the configuration documentation for LiteSpeed Web Server has not been migrated from our Wiki yet. Please visit the wiki if you don't find what you are looking for below.
These directives can be used within Apache configuration files, but they may be LiteSpeed-specific (i.e. not recognized by Apache), in which case they must be contained within
LogRotationSize <size> directive controls how frequently the access log should be rotated. In other words, once the log reaches the specified size in bytes, the contents will be copied to a backup file and a new log will be started.
This directive may only be set at the server level, and it cannot be used in Apache virtual host configuration.
LogRotationSizeneeds to be set prior to defining
LogRotationSizeis set, all subsequent
CustomLogconfigurations will follow the specified size limit.
- You can add
Gto the size, to signify kilo-, mega-, and gigabytes respectively. Use a value of
0to disable the log rotation.
Disable log rotation:
<IfModule litespeed> LogRotationSize 0 </IfModule>
<IfModule litespeed> LogRotationSize 10M </IfModule>
LogKeepDays <N> directive controls how many days to keep the access log. This directive may only be set at the server level, and it cannot be used in Apache virtual host configurations.
LogCompressArchive on|off directive is to turn on or off the access log compression archive. This directive may only be set at the server level, and it cannot be used in Apache virtual host configurations.
UniqueId on|off directive is used to create a unique identifier for requests, similar to the Apache mod_unique_id directive. UniqueID is disabled by default.
This directive may be set at the server level, the virtual-host level or in the document root's
<IfModule litespeed> UniqueId on </IfModule>
By default, LiteSpeed prohibits access to some hidden files with extensions like
.svn. This is a LiteSpeed security feature which does not exist in Apache. Apache may rely on an additional rewrite rule to block such files.
If you need to allow access to these file names for a single vhost (for example, you might want to proxy requests to OpenResty with a rewrite rule in the File Manager function), the
AllowBlockedUrl directive can be placed into the Apache configuration for that vhost.
AllowBlockedUrl on allows prohibited files to be accessed.
Allow blocked URLs:
<IfModule litespeed> AllowBlockedUrl on </IfModule>
LiteSpeed doesn't support Apache's header
edit directive, and so the following Apache directive won't work on LiteSpeed:
Header always edit Set-Cookie (.*) "$1;HTTPOnly;Secure;SameSite=none"
ForceSecureCookie directive may be used to enforce
httponly cookie attributes. It can be set in the Apache config file at the server or virtual-host level, or in the
.htaccess of the document root directory.
ForceSecureCookie accepts the following values in any order:
- You can combine
- LiteSpeed Web Server automatically adds a
secureflag when serving traffic over HTTPS, so it is not necessary to add it with a directive.
To enforce the
secure attribute only:
<IfModule LiteSpeed> ForceSecureCookie secure </IfModule>
<IfModule LiteSpeed> ForceSecureCookie secure same_site_none </IfModule>
<IfModule LiteSpeed> ForceSecureCookie strict </IfModule>
<IfModule LiteSpeed> ForceSecureCookie same_site_strict </IfModule>
MaxReqBodySize at the virtual-host level to specify the maximum size of an HTTP request body.
<IfModule LiteSpeed> MaxReqBodySize 1024M </IfModule>
MaxDynRespSize at the virtual-host level to specify the maximum body size of a dynamically generated response.
<IfModule LiteSpeed> MaxDynRespSize 1024M </IfModule>
The following special environment variables may be used in rewrite rules to control LiteSpeed Web Server features:
When set to any value,
dontlog prevents access logging.
RewriteRule \.gif - [E=dontlog:1]
When set to any value,
nokeepalive closes the client's connection after finishing this request.
RewriteRule .* - [E=nokeepalive:1]
When set to any non-zero value,
no-gzip instructs the server not to use GZIP compression for this request.
RewriteRule \.css - [E=no-gzip:1]
no-gzip:0 has no effect.
Proxy-Host modifies the proxy request
Host header value.
A web site whose domain name is
www.example.com sends a proxy request to the backend, which is a web server with the name
node1. The backend web server requires the domain name to be
www.example.com. This is the rewrite rule which enforces that:
RewriteRule ^(.*)$ http://node1/$1 [P,E=Proxy-Host:www.example.com]
cache-ctrl environment variable allows you to modify the server's page cache policy, enable, or disable cache.
Rewriterule ^/special_cachable_url$ - [E=Cache-ctrl:max-ages=30]
Rewriterule ^/non-cacheable-url$ - [E=Cache-control:no-cache]
For more details on how to use
cache-control, please see the LSCache Without a Plugin documentation.
This flag prevents the server from killing external application processes while they are still running.
RewriteRule ^script_url$ - [E=noabort:1]
When LiteSpeed Web Server processes a request, it usually passes the request to the backend (PHP) without waiting for the full request body to complete. Usually, this is not a problem, but it can be an issue if the script needs the whole request body to work properly.
wait-req-full-body environment variable instructs the server to wait until the full request body completes before passing the request to the backend.
RewriteRule ^(.*)$ - [E=wait-req-full-body:1]