用户手册
Version 1.9 — Rev. 3

# 模块配置

OpenLiteSpeed 1.3及LSWS Enterprise 5.0或更高版本提供模块支持。 所有所需模块都必须在“服务器模块配置”标签下注册。模块文件必须位于服务器root/modules目录中，才能用于注册。启动时，服务器会加载所有已注册的模块。注册新模块后必须重新启动服务器。
模块可在“服务器模块配置”标签下进行全局配置。随后，侦听器和虚拟主机模块配置可以继承或修改这些配置数据。

### 服务器模块

#### 描述

服务器模块配置会全局定义模块配置数据。 定义后，侦听器和虚拟主机即可访问这些模块及其配置。
所有要处理的模块都必须在服务器配置中注册。服务器配置还定义模块参数数据的默认值。这些值可由侦听器和虚拟主机配置数据继承或覆盖。
模块优先级只在服务器级别定义，并由侦听器和虚拟主机配置继承。

### 模块

#### 描述

服务器启动时要加载的外部或内部模块的名称。
外部模块
用于外部模块的值必须与 $SERVER_ROOT/modules/modulename.so 下的“.so”文件名匹配， 以便服务器应用程序加载该文件。 在注册新模块后需要重新启动服务器。
内部模块
内部模块使用的值必须与构建模块时使用的名称匹配 例如，对于服务器附带的内部缓存模块，必须将其设置为“缓存”。

#### 语法

字符串

### 内部模块

#### 描述

指定模块是否为内部模块（静态链接），而不是动态链接库。

#### 语法

布尔值

### 模块参数

#### 描述

设置模块参数。模块参数由模块开发者定义。
服务器级别设置的值会全局分配为默认值。 用户可以在侦听器、虚拟主机或上下文级别覆盖此设置。如果在这些级别未设置该值，则会从上一级继承。

#### 语法

由模块接口指定。

### 启用模块

#### 描述

全局启用模块Hook。此设置可在侦听器和虚拟主机级别覆盖。
默认值：Yes

#### 语法

布尔值

### Hook::L4_BEGINSESSION 优先级

#### 描述

设置此模块回调在L4 Begin Session Hook中的优先级。
TCP/IP连接开始时会触发L4 Begin Session Hook。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::L4_ENDSESSION 优先级

#### 描述

设置此模块回调在L4 End Session Hook中的优先级。
TCP/IP连接结束时会触发L4 End Session Hook。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::L4_RECVING 优先级

#### 描述

设置此模块回调在L4 Receiving Hook中的优先级。
TCP/IP连接接收数据时会触发L4 Receiving Hook。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::L4_SENDING 优先级

#### 描述

设置此模块回调在L4 Sending Hook中的优先级。
TCP/IP连接发送数据时会触发L4 Sending Hook。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::HTTP_BEGIN 优先级

#### 描述

设置此模块回调在HTTP Begin Hook中的优先级。
TCP/IP连接开始HTTP会话时会触发HTTP Begin Hook。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::RECV_REQ_HEADER 优先级

#### 描述

设置此模块回调在HTTP Receive Request Header Hook中的优先级。
Web服务器收到请求头时会触发HTTP Receive Request Header Hook。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::URI_MAP 优先级

#### 描述

设置此模块回调在HTTP URI Map Hook中的优先级。
Web服务器将URI请求映射到上下文时会触发HTTP URI Map Hook。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::HTTP_AUTH 优先级

#### 描述

设置此模块回调在HTTP Authentication Hook中的优先级。
HTTP Authentication Hook会在资源映射之后、处理程序处理之前触发。它发生在HTTP内置身份验证之后，可用于执行额外的身份验证检查。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::RECV_REQ_BODY 优先级

#### 描述

设置此模块回调在HTTP Receive Request Body Hook中的优先级。
Web服务器接收请求正文数据时会触发HTTP Receive Request Body Hook。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::RCVD_REQ_BODY 优先级

#### 描述

设置此模块回调在HTTP Received Request Body Hook中的优先级。
Web服务器完成接收请求正文数据时会触发HTTP Received Request Body Hook。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::RECV_RESP_HEADER 优先级

#### 描述

设置此模块回调在HTTP Receive Response Header Hook中的优先级。
Web服务器创建响应头时会触发HTTP Receive Response Header Hook。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::RECV_RESP_BODY 优先级

#### 描述

设置此模块回调在HTTP Receive Response Body Hook中的优先级。
Web服务器后端接收响应正文时会触发HTTP Receive Response Body Hook。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::RCVD_RESP_BODY 优先级

#### 描述

设置此模块回调在HTTP Received Response Body Hook中的优先级。
Web服务器后端完成接收响应正文时会触发HTTP Received Response Body Hook。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::HANDLER_RESTART 优先级

#### 描述

设置此模块回调在HTTP Handler Restart Hook中的优先级。
当Web服务器需要丢弃当前响应并从头开始处理时会触发HTTP Handler Restart Hook，例如请求了内部重定向时。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::SEND_RESP_HEADER 优先级

#### 描述

设置此模块回调在HTTP Send Response Header Hook中的优先级。
Web服务器准备发送响应头时会触发HTTP Send Response Header Hook。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::SEND_RESP_BODY 优先级

#### 描述

设置此模块回调在HTTP Send Response Body Hook中的优先级。
Web服务器即将发送响应正文时会触发HTTP Send Response Body Hook。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::HTTP_END 优先级

#### 描述

设置此模块回调在HTTP Session End Hook中的优先级。
HTTP连接结束时会触发HTTP Session End Hook。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::MAIN_INITED 优先级

#### 描述

设置此模块回调在Main Initialized Hook中的优先级。
Main Initialized Hook会在启动时触发一次，时间是在主（控制器）进程完成服务器配置和初始化之后、处理任何请求之前。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::MAIN_PREFORK 优先级

#### 描述

设置此模块回调在Main Prefork Hook中的优先级。
Main Prefork Hook会在新的工作进程启动（fork）之前，由主（控制器）进程立即触发。每个工作进程都会调用此Hook，可能发生在系统启动期间或工作进程重启时。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::MAIN_POSTFORK 优先级

#### 描述

设置此模块回调在Main Postfork Hook中的优先级。
Main Postfork Hook会在新的工作进程启动（fork）之后，由主（控制器）进程立即触发。每个工作进程都会调用此Hook，可能发生在系统启动期间或工作进程重启时。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::WORKER_POSTFORK 优先级

#### 描述

设置此模块回调在Worker Postfork Hook中的优先级。
Worker Postfork Hook会在工作进程由主（控制器）进程创建后，由工作进程触发。请注意，对应的Main Postfork Hook可能会在此回调之前或之后由主进程调用。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::WORKER_ATEXIT 优先级

#### 描述

设置此模块回调在Worker At Exit Hook中的优先级。
Worker At Exit Hook会在工作进程即将退出前触发。这是工作进程调用的最后一个Hook点。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### Hook::MAIN_ATEXIT 优先级

#### 描述

设置此模块回调在Main At Exit Hook中的优先级。
Main At Exit Hook会在主（控制器）进程即将退出前触发。这是主进程调用的最后一个Hook点。
只有模块在此处有挂钩点时，此设置才会生效。如果未设置，优先级将使用模块中定义的默认值。

#### 语法

-6000到6000之间的整数。值越小，优先级越高。

### 侦听器模块

#### 描述

侦听器模块配置数据默认从服务器模块配置继承。 侦听器模块仅限于TCP/IP第4层Hook。

### 启用模块

#### 描述

在侦听器级别启用模块Hook。只有当模块具有TCP/IP级别Hook (L4_BEGSESSION, L4_ENDSESSION, L4_RECVING, L4_SENDING)时，此设置才会生效。
默认值：继承服务器级别设置

#### 语法

布尔值

### 虚拟主机模块

#### 描述

虚拟主机模块配置数据默认从服务器模块配置继承。 虚拟主机模块仅限于HTTP级别Hook。

### 启用模块

#### 描述

在虚拟主机级别启用模块Hook。只有当模块具有HTTP级别Hook时，此设置才会生效。
默认值：继承服务器级别设置

#### 语法

布尔值

### 虚拟主机模块上下文

#### 描述

这是集中自定义虚拟主机上下文模块设置的位置。 上下文URI的设置会覆盖虚拟主机或服务器级别设置。

### URI

#### 描述

指定此上下文的URI。

#### 语法

URI可以是普通URI（以"/"开头），也可以是Perl兼容的正则表达式URI（以"exp:"开头）。 如果普通URI以"/"结尾，则此上下文将包含该URI下的所有子URI。 如果上下文映射到文件系统上的目录，则必须添加结尾的"/"。

#### 另请参阅

位置