### OpenLiteSpeed Web Server Users' Manual

##### Version 1.6 — Rev. 2

- License
- Introduction
- Installation
- Administration
  - Service Manager
- Security
- Configuration
  - Server General
  - Server Log
  - Server Tuning
  - Server Security
  - External Apps
  - Fast CGI App
  - Fast CGI Authorizer
  - LSAPI App
  - Servlet Engine
  - Web Server
  - Piped logger
  - Load Balancer
  - Script Handler
  - App Server Settings
  - Module Configuration
  - Listener General
  - Listener SSL
  - Virtual Host Templates
  - Virtual Host Basic
  - Virtual Host General
  - Virtual Host Security
  - Virtual Host SSL
  - Rewrite
  - Context
  - Static Context
  - Java Web App Context
  - Servlet Context
  - Fast CGI Context
  - LSAPI Context
  - Proxy Context
  - CGI Context
  - Load Balancer Context
  - Redirect Context
  - App Server Context
  - Module Handler Context
  - Web Socket Proxy
- Web Console
  - Admin Console General
  - Admin Console Security
  - Admin Listener General
  - Admin Listener SSL

# Module Configuration

Module support is available in Openlitespeed 1.3 and LSWS Enterprise 5.0 and greater. All required modules must be registered under the Server Modules Configuration tab. Module files must be located in the server root/modules folder to be available for registering. On start up, the server loads all registered modules. The server must be restarted after new modules are registered. Modules can be configured globally under the Server Module configuration tab. The configuration data is then available to the Listener and Virtual Host Module Configurations to inherit or modify.

## Table of Contents

### Server Modules⇑

#### Description

The Server module configuration globally defines the module configuration data. Once defined, the Listeners and Virtual Hosts have access to the modules and module configurations.
All modules that are to be processed must be registered in the Server configuration. The Server configuration also defines the default values for module parameter data. These values can be inherited or overridden by the Listener and Virtual Host configuration data.
Module priority is only defined at server level and is inherited by the Listener and Virtual Host configurations.

### Module⇑

#### Description

Name of the module. The module name will be the same as the module filename. The module file must be located under $SERVER_ROOT/modules/modulename.so in order to be loaded by the server application. The server will load the registered modules at start up. This requires that the server is restarted after new modules are registered.

#### Syntax

the library name of .so.

### Is Internal⇑

#### Description

Specify whether the module is an internal module, which is statically linked, instead of being an external .so library.

#### Syntax

Select from radio box

### Module Parameters⇑

#### Description

Set module parameters. The module parameters are defined by the module developer.
Set the value in the Server configuration to globally assign the default value. The user can override this setting at the Listener, Virtual Host or Context levels. If the 'Not Set' radio button is selected, it will be inherited from the upper level.

#### Syntax

Specified by the module interface.

### Enable Module⇑

#### Description

Enables module hooks globally. This setting can be overridden at the Listener and Virtual Host levels.
Default value: Yes

#### Syntax

Select from radio box

### Hook::L4_BEGINSESSION Priority⇑

#### Description

Sets the priority for this module callback within the L4 Begin Session Hook.
The L4 Begin Session Hook is triggered when the TCP/IP connection begins.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::L4_ENDSESSION Priority⇑

#### Description

Sets the priority for this module callback within the L4 End Session Hook.
The L4 End Session Hook is triggered when the TCP/IP connection ends.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::L4_RECVING Priority⇑

#### Description

Sets the priority for this module callback within the L4 Receiving Hook.
The L4 Receiving Hook is triggered when the TCP/IP connection receives data.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::L4_SENDING Priority⇑

#### Description

Sets the priority for this module callback within the L4 Sending Hook.
The L4 Sending Hook is triggered when the TCP/IP connection sends data.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::HTTP_BEGIN Priority⇑

#### Description

Sets the priority for this module callback within the HTTP Begin Hook.
The HTTP Begin Hook is triggered when the TCP/IP connection begins an HTTP Session.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::RECV_REQ_HEADER Priority⇑

#### Description

Sets the priority for this module callback within the HTTP Receive Request Header Hook.
The HTTP Receive Request Header Hook is triggered when the web server receives a request header.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::URI_MAP Priority⇑

#### Description

Sets the priority for this module callback within the HTTP URI Map Hook.
The HTTP URI Map Hook is triggered when the web server maps a URI request to a context.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::HTTP_AUTH Priority⇑

#### Description

Sets the priority for this module callback within the HTTP Authentication Hook.
The HTTP Authentication Hook is triggered after resource mapping and before handler processing. It occurs after HTTP built-in authentication, and can be used to perform additional authentication checking.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::RECV_REQ_BODY Priority⇑

#### Description

Sets the priority for this module callback within the HTTP Receive Request Body Hook.
The HTTP Receive Request Body Hook is triggered when the web server receives request body data.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::RCVD_REQ_BODY Priority⇑

#### Description

Sets the priority for this module callback within the HTTP Received Request Body Hook.
The HTTP Received Request Body Hook is triggered when the web server finishes receiving request body data.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::RECV_RESP_HEADER Priority⇑

#### Description

Sets the priority for this module callback within the HTTP Receive Response Header Hook.
The HTTP Receive Response Header Hook is triggered when the web server creates the response header.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::RECV_RESP_BODY Priority⇑

#### Description

Sets the priority for this module callback within the HTTP Receive Response Body Hook.
The HTTP Receive Response Body Hook is triggered when the web server backend receives the response body.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::RCVD_RESP_BODY Priority⇑

#### Description

Sets the priority for this module callback within the HTTP Received Response Body Hook.
The HTTP Received Response Body Hook is triggered when the web server backend finishes receiving the response body.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::HANDLER_RESTART Priority⇑

#### Description

Sets the priority for this module callback within the HTTP Handler Restart Hook.
The HTTP Handler Restart Hook is triggered when the web server needs to discard the current response and start processing from beginning, for example, when an internal redirect has been requested.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::SEND_RESP_HEADER Priority⇑

#### Description

Sets the priority for this module callback within the HTTP Send Response Header Hook.
The HTTP Send Response Header Hook is triggered when the web server is ready to send the response header.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::SEND_RESP_BODY Priority⇑

#### Description

Sets the priority for this module callback within the HTTP Send Response Body Hook.
The HTTP Send Response Body Hook is triggered when the web server is going to send the response body.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::HTTP_END Priority⇑

#### Description

Sets the priority for this module callback within the HTTP Session End Hook.
The HTTP Session End Hook is triggered when the HTTP connection has ended.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::MAIN_INITED Priority⇑

#### Description

Sets the priority for this module callback within the Main Initialized Hook.
The Main Initialized Hook is triggered once upon startup, after the server configuration and initialization is completed by the main (controller) process, and before any requests are serviced.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::MAIN_PREFORK Priority⇑

#### Description

Sets the priority for this module callback within the Main Prefork Hook.
The Main Prefork Hook is triggered by the main (controller) process immediately before a new worker process is started (forked). This is called for each worker, and may happen during system startup, or if a worker has been restarted.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::MAIN_POSTFORK Priority⇑

#### Description

Sets the priority for this module callback within the Main Postfork Hook.
The Main Postfork Hook is triggered by the main (controller) process immediately after a new worker process has been started (forked). This is called for each worker, and may happen during system startup, or if a worker has been restarted.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::WORKER_POSTFORK Priority⇑

#### Description

Sets the priority for this module callback within the Worker Postfork Hook.
The Worker Postfork Hook is triggered by a worker process after being created by the main (controller) process. Note that a corresponding Main Postfork Hook may be called by the main process either before or after this callback.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::WORKER_ATEXIT Priority⇑

#### Description

Sets the priority for this module callback within the Worker At Exit Hook.
The Worker At Exit Hook is triggered by a worker process just prior to exiting. It is the last hook point to be called by a worker.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Hook::MAIN_ATEXIT Priority⇑

#### Description

Sets the priority for this module callback within the Main At Exit Hook.
The Main At Exit Hook is triggered by the main (controller) process just prior to exiting. It is the last hook point to be called by the main process.
It will only take effect if the module has a hook point here. If it is not set, the priority will be the default value defined in the module.

#### Syntax

Integer value from -6000 to 6000. Lower value means higher priority.

### Listener Modules⇑

#### Description

Listener module configuration data is, by default inherited from the Server module configuration. The Listener Modules are limited to the TCP/IP Layer 4 hooks.

### Enable Module⇑

#### Description

Enables module hooks at the Listener level. This setting will only take effect if the module has TCP/IP level hooks (L4_BEGSESSION, L4_ENDSESSION, L4_RECVING, L4_SENDING).
Default value: Inherit Server level setting

#### Syntax

Select from radio box

### Virtual Host Modules⇑

#### Description

Virtual Host module configuration data is, by default inherited from the Server module configuration. The Virtual Host Modules are limited to the HTTP level hooks.

### Enable Module⇑

#### Description

Enables module hooks at the Virtual Host level. This setting will only take effect if the module has HTTP level hooks.
Default value: Inherit Server level setting

#### Syntax

Select from radio box

### Virtual Host Module Context⇑

#### Description

It's a centralized place to customize module settings for virtual host contexts. Settings for a context URI will override the virtual host or the server level settings.

### URI⇑

#### Description

Specifies the URI for this context.

#### Syntax

The URI can be a plain URI (starting with "/") or a Perl compatible regular expression URI (starting with "exp:"). If a plain URI ends with a "/", then this context will include all sub-URIs under this URI. If the context maps to a directory on the file system, a trailing "/" must be added.

#### See Also

Location