OpenLiteSpeed用户手册 - 服务器调优
Description: OpenLiteSpeed用户手册 - 服务器调优.

用户手册
Version 1.9 — Rev. 3

# 服务器调优

### 默认SHM目录

#### 描述

将共享内存的默认目录更改为指定的路径。 如果该目录不存在，则将创建该目录。除非另有说明，否则所有SHM数据都将存储在此目录中。

#### 语法

path

### PROXY协议

#### 描述

使用PROXY协议与此服务器通信的前端代理IP/子网列表。设置后，服务器会对来自所列IP/子网的传入连接使用PROXY协议； 如果PROXY协议不可用，则回退到常规连接。
适用于HTTP、HTTPS、HTTP2和websocket连接。

#### 语法

以逗号分隔的IP地址或子网列表。

### 最大连接数

#### 描述

指定服务器可以接受的最大并发连接数。这包括纯TCP连接和SSL连接。 一旦达到此限制，服务器将在完成活动请求时关闭“Keep-Alive”的连接。

#### 语法

非负整数

#### 提示

Information 当服务器由"root"用户启动时，服务器会尝试自动调整每个进程的文件描述符限制，但是，如果自动调整失败，你可能需要手动增加此限制。

### 最大SSL连接数

#### 描述

指定服务器将接受的最大并发SSL连接数。 由于并发SSL和非SSL的连接总数不能超过最大连接数的限制，因此允许的最大SSL连接的数量须低于此限制。

#### 语法

非负整数

### 连接超时时间(secs)

#### 描述

指定一个请求允许的最大连接空闲时间。 如果在这段时间内连接一直处于空闲状态(即没有I/O活动），则它将被关闭。

#### 语法

非负整数

#### 提示

[安全建议] 将值设置得尽可能低，在可能的拒绝服务攻击中，这可以帮助释放无效连接所占用的连接数。

#### 另请参阅

持续连接超时时长

### 最大持续连接请求数

#### 描述

指定通过持续连接（持久）会话处理的请求的最大数量。一旦达 到此限制，连接将被关闭。您也可以为每个虚拟主机单独设置限制。

#### 语法

非负整数

#### 提示

[性能建议] 设置为合理的较高的值。值为“1”或“0”时将禁用持续连接。

#### 另请参阅

Virtual Host 最大Keep-Alive请求数

### 持续连接超时时长

#### 描述

指定持续连接请求的最长闲置时间。 如果在这段时间内没有接收到新的请求，该连接将被关闭。 这个设置只适用于HTTP/1.1连接。HTTP/2连接有较长的闲置时间，不受此设置影响。

#### 语法

非负整数

#### 提示

[安全和性能建议] 我们建议您将值设置得刚好足够处理单个页面 视图的所有请求。没有必要延长持续连接时间。较小的值可以减少闲置 连接，提高能力，以服务更多的用户，并防范拒绝服务攻击。2-5秒 对大多数应用是合理范围。LiteSpeed在非持续连接环境是非常高效的。

### 发送缓冲区大小

#### 描述

每个TCP套接字的发送缓冲区的大小。设定值为0使用 操作系统默认的缓冲区大小。65535是允许的最大缓冲区大小。

#### 语法

非负整数

#### 提示

[性能建议] 建议将此值保留为“未设置”或设置为0以使用操作系统的默认缓冲区大小。
[性能建议] 如果您的网站服务大量的静态文件，增加发送缓冲区 大小来提高性能。
[性能建议] 将此值设置为较低的值将减少吞吐量和每个套接字的内存使用率，从而在内存成为瓶颈时允许服务器拥有更多并发套接字。

### 接收缓冲区大小 (bytes)

#### 描述

每个TCP套接字的接收缓冲区大小。 512K是允许的最大缓冲区大小。

#### 语法

非负整数

#### 提示

[性能建议] 建议将此值保留为“未设置”或设置为0以使用操作系统的默认缓冲区大小。
[性能建议] 处理大载荷入站请求，如文件上传时，大的接收缓冲区会提高性能。
[性能建议] 将此值设置为较低的值将减少吞吐量和每个套接字的内存使用率，从而在内存成为瓶颈时允许服务器拥有更多并发套接字。

### 最大请求URL长度(bytes)

#### 描述

指定请求URL的最大大小。 URL是一个纯文本的地址，包含查询字符串来请求服务器上的资源。 硬限制为65530个字节。 大于此值的值，例如64K（大6个字节），将被视为65530。
默认值：8192或8K。

#### 语法

非负整数

#### 提示

[安全和性能建议] 将其设置合理的低值来以减少内存使用 并帮助识别虚假请求和拒绝服务攻击。
对大多数网站2000-3000已经足够大，除非使用HTTP GET而不是POST来提交大型的查询字符串。

### 最大请求头大小(bytes)

#### 描述

指定请求URL中包含的HTTP请求头最大值。 硬限制为131072 字节或128K.
默认值：32768或32K

#### 语法

非负整数

#### 提示

[安全和性能建议] 设置合理的低值来减少内存的使用并帮助识别虚假请求和拒绝服务攻击。
对于大多数网站来说4000-8000已经足够大。

### 最大请求主内容大小(bytes)

#### 描述

指定HTTP请求主内容最大尺寸。对于32位操作系统， 硬限制为2GB。对于64位操作系统，几乎是无限的。

#### 语法

非负整数

#### 提示

[安全建议] 为了防止拒绝服务攻击，尽量将限制值设定到实际需求的大小。 交换空间的剩余空间必须比这个限制值大。

### 动态回应报头最大大小(bytes)

#### 描述

指定动态回应的最大报头大小。硬限制为131072字节或128K.
默认值：32768或32K

#### 语法

非负整数

#### 提示

[可靠性和性能建议] 设置一个合理的低值以帮助识别外部应用程序产生的 坏的动态回应。

### 最大动态响应主体大小(bytes)

#### 描述

指定动态回应的最大主内容尺寸。硬限制是2047MB。

#### 语法

非负整数

#### 提示

[可靠性和性能建议] 设置一个合理的低值以帮助识别坏的响应。恶意脚本经常包含 无限循环而导致大尺寸回应。

### 最大小文件缓存(bytes)

#### 描述

指定预分配内存缓冲区中缓存的静态文件最大尺寸。静态文件 可以用四种不同的方式服务：内存缓存、内存映射缓存、直接读写和 sendfile()。 尺寸小于最大小文件缓存(bytes)的文件将使用内存缓存服务。尺寸大于该限制、但小于 最大MMAP文件大小(bytes)的文件，将使用内存映射缓存服务。 尺寸大于最大MMAP文件大小(bytes)的文件将通过直接读写或sendfile() 服务。使用内存缓存服务小于4K的文件是最佳做法。

#### 语法

非负整数

### 小文件缓存总大小 (bytes)

#### 描述

指定分配用于缓存/服务小静态文件的总内存。

#### 语法

非负整数

### 最大MMAP文件大小(bytes)

#### 描述

指定使用内存映射（MMAP）的最大静态文件大小。 静态文件可以用四种不同的方式服务：内存缓存、内存映射缓存、直接读写和 sendfile()。 尺寸小于最大小文件缓存(bytes)的文件将使用内存缓存服务。尺寸大于该限制、但小于 最大MMAP文件大小(bytes)的文件，将使用内存映射缓存服务。 尺寸大于最大MMAP文件大小(bytes)的文件将通过直接读写或sendfile() 服务。 由于服务器有一个32位的地址空间（2GB），不建议使用内存映射非常大的文件。

#### 语法

非负整数

### 总MMAP缓存大小 (bytes)

#### 描述

指定分配用于缓存/服务中等大小静态文件的总内存。

#### 语法

非负整数

### 使用sendfile()

#### 描述

指定是否使用sendfile()系统调用来服务静态文件。静态文件 可以用四种不同的方式服务：内存缓存、内存映射缓存、直接读写和 sendfile()。 尺寸小于最大小文件缓存(bytes)的文件将使用内存缓存服务。尺寸大于该限制、但小于 最大MMAP文件大小(bytes)的文件，将使用内存映射缓存服务。 尺寸大于最大MMAP文件大小(bytes)的文件将通过直接读写或sendfile() 服务。Sendfile()是一个“零拷贝”系统调用，可在服务非常大的 文件时大大减少CPU的使用率。Sendfile()需要一个优化的网卡内核驱动， 因此可能不适合某些小厂商的网络适配器。

#### 语法

布尔值

### 使用异步 I/O (AIO)

#### 描述

指定是否使用异步I/O服务静态文件，以及要使用的AIO实现。选项LINUX AIO和io_uring仅在Linux机器上可用。
默认值：No

#### 语法

从列表中选择

#### 提示

[性能建议] 对于I/O等待较高的服务器，AIO可帮助提升性能。
[注意] 选择io_uring但当前机器不支持时，将改用Linux AIO。

#### 另请参阅

AIO块大小

### AIO块大小

#### 描述

指定AIO的发送块大小。 此块大小乘以正在处理的文件总数应小于服务器物理内存，否则AIO不会带来帮助。如果服务器内存充足，可以选择更大的大小。
默认值：128K

#### 语法

从列表中选择

#### 另请参阅

使用异步 I/O (AIO)

### 文件ETag

#### 描述

指定是否使用一个文件的索引节点、最后修改时间和大小属性 生成静态文件的ETag HTTP响应头。 所有这三个属性是默认启用的。 如果您打算使用镜像服务器服务相同的文件，您应该不勾选索引节点。 否则，为同一个文件生成的ETag在不同的服务器上是不同的。

#### 语法

从复选框选择

### 启用压缩

#### 描述

为静态和动态响应启用GZIP/Brotli压缩。
默认值：Yes

#### 语法

从单选框中选择

#### 提示

[性能建议] 启用后可节省网络带宽。基于文本的响应（如html、css和javascript文件）受益最大，平均可压缩到原始大小的一半。

### 压缩类型

#### 描述

指定允许压缩哪些MIME类型。 保留此设置不变，或输入default以使用服务器内置的默认列表，该列表已经涵盖了大多数mime类型。
默认值： 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

#### 语法

逗号分隔的MIME类型列表。允许使用通配符“*”和排除符号“!”，例如text/*, !text/js。

#### 示例

如果要压缩text/*但不压缩text/css，可以使用如下规则： text/*, !text/css。“!”会排除该MIME类型。

#### 提示

[性能建议] 只允许特定类型进行GZIP压缩。 二进制文件如gif/png/jpeg图片文件及flash文件无法从压缩中获益。

### 启用GZIP动态压缩

#### 描述

控制动态HTTP回应的GZIP压缩。 启用压缩必须设置为Yes来开启动态GZIP压缩。
默认值：Yes

#### 语法

布尔值

#### 提示

[性能建议] 压缩动态回应将增加CPU和内存的使用，但可以节省网络带宽。

### GZIP压缩级别（动态内容）

#### 描述

指定压缩动态内容的级别。 范围从1(最低)到9(最高)。
该设置仅在启用压缩和启用GZIP动态压缩启用时生效。
默认值: 6

#### 语法

1到9之间的数字。

#### 提示

[性能建议] 更高的压缩级别将消耗更多的内存和CPU资源。 如果您的机器有额外的资源您可以设置更高的级别。 级别9与级别6没有太大的区别，但是级别9会占用多得多的CPU资源。

### 自动更新静态文件

#### 描述

指定是否由LiteSpeed自动创建/更新可压缩静态文件的GZIP压缩版本。 如果设置为Yes，当请求文件MIME属于压缩类型时， LiteSpeed会根据压缩的文件时间戳来创建/更新文件的压缩版本。 压缩的文档会创建在静态缓存目录目录下。 文件名称根据原文件的MD5散列创建。
默认值: Yes

#### 语法

布尔值

### GZIP压缩级别（静态内容）

#### 描述

指定GZIP压缩静态内容的级别。 范围从1 (最低)到9 (最高)。。
该选项仅在 启用压缩和自动更新静态文件 启用后才会生效
默认值是6

#### 语法

1到9之间的数字。

### Brotli压缩等级（静态文件）

#### 描述

指定Brotli压缩静态内容的级别。 范围从1(最低)到9(最高)。
当设置为0时，Brotli压缩将在全局禁用。
默认值：5

#### 语法

0到11之间的数字。

#### 提示

[性能建议] 压缩可以用来节省网络带宽。 基于文本的响应（例如html，css和javascript文件）效果最好，平均可以将其压缩为原始大小的一半。

### 静态缓存目录

#### 描述

指定目录路径来存储静态内容的压缩文件。默认是交换目录。

#### 语法

目录路径

### 静态文件最大尺寸(bytes)

#### 描述

指定LiteSpeed可以自动创建压缩文件的静态文件最大尺寸。
默认值为 10M

#### 语法

不小于1K的字节数。

#### 提示

[性能建议] 不建议使用LiteSpeed创建/更新较大文件的压缩文件。 压缩操作会占用整个服务器进程并且在压缩结束前新请求都无法被处理。

### 静态文件最小尺寸 (bytes)

#### 描述

指定LiteSpeed创建相应压缩文件的静态文件最小尺寸。
默认值：200

#### 语法

不小于200的字节数。

#### 提示

Information 非常小的文件节省的带宽可以忽略，通常无需压缩。

### 默认密码套件

#### 描述

SSL证书使用的默认密码套件。
默认值：服务器内部默认值（基于当前最佳实践）

#### 语法

以冒号分隔的密码套件规格字符串。

### SSL强DH密钥

#### 描述

指定是使用2048位还是1024位DH密钥进行SSL握手。 如果设置为“是”，则2048位DH密钥将用于2048位SSL密钥和证书。 在其他情况下，仍将使用1024位DH密钥。 默认值为“是”。 Java的早期版本不支持大于1024位的DH密钥大小。 如果需要Java客户端兼容性，则应将其设置为“否”。

#### 语法

从单选按钮选择

### 启用多个SSL证书

#### 描述

允许侦听器/虚拟主机设置多个SSL证书。 如果启用了多个证书，则证书/密钥应遵循命名方案。 如果证书名为server.crt，则其他可能的证书名称为server.crt.rsa， server.crt.dsa，server.crt.ecc。 如果为“未设置”，则默认为“否”。

#### 语法

布尔值

### 启用SSL会话缓存

#### 描述

使用OpenSSL的默认设置启用会话ID缓存。 服务器级别设置必须设置为“是”才能使虚拟主机设置生效。
默认值:
服务器级别: Yes
虚拟主机级别: Yes

#### 语法

布尔值

### 会话缓存大小 (bytes)

#### 描述

设置要存储在缓存中的SSL会话ID的最大数量。 默认值为1,000,000。

#### 语法

整数

### 会话缓存过期时间 (secs)

#### 描述

此值确定需要重新握手之前，会话ID在缓存中有效的时间。 默认值为 3,600.

#### 语法

整数

### 启用会话记录单

#### 描述

使用OpenSSL的默认会话票证设置启用会话记录单。 服务器级别设置必须设置为“是”才能使虚拟主机设置生效。
默认值:
服务器级别: Yes
虚拟主机级别: Yes

#### 语法

布尔值

### SSL会话记录单生存时间(secs)

#### 描述

此值确定需要重新握手之前会话记录单有效的时间。 默认值为3600。

#### 语法

整数

### SSL会话记录单密钥文件

#### 描述

允许管理员创建和维护SSL票证密钥。该文件长度必须为48字节。 如果此选项留空，负载均衡器将生成并轮换自己的密钥集。
重要：为保持前向保密，强烈建议每隔SSL会话票证生存时间秒更换密钥。 如果无法做到，建议将此字段留空。

#### 语法

路径

### OCSP代理

#### 描述

用作OCSP验证代理服务器地址的套接字地址。不使用代理时请保持未设置。
默认值：未设置

#### 语法

套接字地址

### 严格SNI证书

#### 描述

指定是否严格要求专用的虚拟主机证书配置。启用后，没有专用证书配置的虚拟主机SSL连接将失败， 而不会使用默认的兜底证书。
默认值：No

#### 语法

从单选框中选择

### ACME自动证书

#### 描述

使用Automatic Certificate Management Environment(ACME)证书协议自动生成和续订SSL证书（配置后）。更多信息请参见：
自动SSL证书（ACME）
在服务器级别将此项设置为Disabled会在整个服务器范围内禁用此设置。在其他所有情况下， 服务器级别设置都可以在虚拟主机级别覆盖。
默认值：
服务器级别：Off
虚拟主机级别：继承服务器级别设置

#### 语法

从列表中选择

### 启用HTTP3/QUIC

#### 描述

在整个服务器范围内启用HTTP3/QUIC网络协议。 默认值为是。

#### 语法

布尔值

#### 提示

Information 当此设置设置为是时，仍然可以通过打开HTTP/3/QUIC（UDP）端口设置在侦听器级别 或通过启用HTTP3/QUIC设置在虚拟主机级别禁用HTTP3/QUIC

### QUIC SHM目录

#### 描述

指定用于将QUIC数据保存到共享内存的目录。
默认情况下，将使用服务器的默认SHM目录/dev/shm。

#### 语法

路径

#### 提示

Information 建议使用基于RAM的分区(内存盘)，例如/dev/shm。

### HTTP3/QUIC版本

#### 描述

启用的HTTP3/QUIC版本的列表。 此设置仅应用于将HTTP3/QUIC支持限制为列出的版本，最好留空。

#### 语法

逗号分隔列表

#### 示例

h3-29, h3-Q050

#### 提示

Information 建议将此设置留空，以便自动应用最佳配置。

### 拥塞控制

#### 描述

使用的拥塞控制算法。 可以手动设置，也可以选择“默认”选项，将其保留到的QUIC库中。
默认值：Default

#### 语法

从下拉列表选择

### 流连接窗口控制

#### 描述

为QUIC连接分配的缓冲区的初始大小。 默认值为 1.5M 。

#### 语法

64K到512M之间的数字

#### 提示

Information 更大的窗口大小将使用更多的内存。

### 最大连接流量窗口值设置

#### 描述

指定连接流控制窗口缓冲区通过自动调优可以达到的最大大小。
默认值为 0 ，这意味着将使用流连接窗口控制的值，并且不会自动调整。

#### 语法

0或64K到512M之间的数字

#### 提示

Information 更大的窗口大小将使用更多的内存。

### 连接流量窗口值

#### 描述

QUIC愿意为每个流接收的初始数据量。 默认值为1M。

#### 语法

64K到128M之间的数字

#### 提示

Information 更大的窗口大小将使用更多的内存。

### 最大流量窗口值设置

#### 描述

指定由于自动调整而允许流控制窗口达到的最大大小。
默认值为0，这意味着将使用连接流量窗口值的值，并且不会自动调整

#### 语法

0或64K到128M之间的数字

#### 提示

Information 更大的窗口大小将使用更多的内存。

### 每个连接的最大并发数

#### 描述

每个QUIC连接的最大并发数。 默认值为100。

#### 语法

10到1000之间的整数

### 握手超时时间（秒）

#### 描述

给出新的QUIC连接完成其握手的时间（以秒为单位），超过限制时间后连接将中止。 默认值为10。

#### 语法

1到15之间的整数

### 空闲超时时间（秒）

#### 描述

空闲的QUIC连接将被关闭的时间（以秒为单位）。 默认值为 30 。

#### 语法

10到30之间的整数

### 启用DPLPMTUD

#### 描述

启用Datagram Packetization Layer Path Maximum Transmission Unit Discovery(DPLPMTUD)。
DPLPMTUD背景信息（RFC 8899）
默认值：Yes

#### 语法

布尔值

### PLPMTU 默认值

#### 描述

QUIC默认使用的PLPMTU (无报头的最大数据包大小,以字节为单位)的默认值. 设置为0将会允许QUIC设置大小.
这个设置必须低于 PLPMTU的最大值 的值.
默认值：0

#### 语法

0或1200至65527之间的整数

### PLPMTU的最大值

#### 描述

PLPMTU（不含报头的最大数据包大小，以字节为单位）的探测上限。此设置用于限制 DPLPMTUD搜索范围中的“最大数据包大小”。设置为0将允许QUIC自行选择大小。 (默认情况下LSQUIC暂定MTU为1,500 字节 (以太网)).
这个设置应该比PLPMTU 默认值的值高.
默认值：0

#### 语法

0或1200至65527之间的整数