Spade
Mini Shell
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1" />
<title>LiteSpeed Web Server Users' Manual -
Configuration</title>
<meta name="description" content="LiteSpeed Web Server
Users' Manual - Configuration." />
<meta name="viewport" content="width=device-width,
initial-scale=1.0" />
<meta name="robots" content="noindex">
<link rel="shortcut icon" href="img/favicon.ico"
/>
<link rel="stylesheet" type="text/css"
href="css/hdoc.css">
</head>
<body>
<div class="pagewrapper clearfix"><aside
class="sidetree ls-col-1-5">
<figure>
<img src="img/lsws_logo.svg" alt="lightspeed web
server logo"
width="100px"/>
</figure>
<h2 class="ls-text-thin">
LiteSpeed Web Server
<br />
<span class="current"><a
href="index.html">Users' Manual</a></span>
</h2>
<h3 class="ls-text-muted">Version 6.3
— Rev. 0</h3>
<hr/>
<div>
<ul>
<li><a href="license.html">License
Enterprise</a></li>
<li><a
href="intro.html">Introduction</a></li>
<li><a
href="install.html">Installation</a></li>
<li>
<a href="admin.html">Administration</a>
<ul class="menu 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>
<span class="current"><a
href="config.html">Configuration</a></span>
<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 href="ServTuning_Help.html">Server
Tuning</a></li>
<li><a href="ServSecurity_Help.html">Server
Security</a></li>
<li><a href="Cache_Help.html">Page
Cache</a></li>
<li><a
href="PageSpeed_Config.html">PageSpeed
Config</a></li>
<li><a href="ExtApp_Help.html">External
Apps</a></li>
<ul class="level3">
<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_LSAPI.html">LSAPI
App</a></li>
<li><a
href="External_Servlet.html">Servlet
Engine</a></li>
<li><a href="External_WS.html">Web
Server</a></li>
<li><a href="External_PL.html">Piped
logger</a></li>
<li><a href="External_LB.html">Load
Balancer</a></li>
</ul>
<li><a
href="ScriptHandler_Help.html">Script
Handler</a></li>
<li><a
href="PHP_Help.html">PHP</a></li>
<li><a href="App_Server_Help.html">App
Server Settings</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
Basic</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="VHPageSpeed_Config.html">Virtual Host
PageSpeed Config</a>
</li>
<li><a
href="Rewrite_Help.html">Rewrite</a></li>
<li><a
href="Context_Help.html">Context</a></li>
<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="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="Rails_Context.html">Rack/Rails
Context</a></li>
</ul>
<li><a
href="VHAddOns_Help.html">Add-ons</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>
</div>
</aside>
<article class="contentwrapper ls-col-3-5 clearfix"><div
class="nav-bar ls-spacer-micro-top"><div
class="prev">« <a
href="security.html">Security</a></div><div
class="center"><a
href="index.html">Home</a></div><div
class="next"><a href="webconsole.html">Web
Console</a> »</div></div>
<h1>Configuration</h1>
<section>
<a
name="con"></a><h3><b>Concepts</b></h3>
<p>Here are some basic concepts you should know before going into the
detail of the configuration.</p>
<a name="vh"></a><h3>Virtual Hosts</h3>
<p>LiteSpeed web server can host multiple web sites (virtual hosts)
with one server instance.</p>
<p>Traditionally, virtual hosts are classified into two types:
IP-based virtual hosts and
name-based virtual hosts.
IP-based virtual hosts are web sites that have their own unique IP
addresses. Name-based
virtual hosts are web sites that are distinguished by their domain name
and
thus may share an IP address with other sites. There is no clear
distinction between these two categories in LiteSpeed
Web Server. IP-based virtual hosts are considered just a special kind of
name-based virtual host. Both of them can be easily configured, or even
mixed
together.</p>
<p>Unlike other web servers, LiteSpeed Web Server does not have a
default web site.
Every web site is configured as a virtual host even if only one web site
is hosted.</p>
<a name="l"></a><h3>Listeners</h3>
<p>In LiteSpeed Web Server, a listener is a server socket that
listens on a
specific IP address and TCP port. If you imagine the web server as a
building, the listeners are
the doors (each with its own IP address and port).
Clients (browsers) have to go through a door (a listener) to submit their
requests.</p>
<p>For each listener, an IP address and a port number need to be
specified.
IP address can be any valid local IP address, or you can set a wildcard
IP
(*) that refers to all available IP addresses on that machine.
A port is an integer between 0 and 65535.
The default port for HTTP is 80 and 443 for HTTPS.
Other ports can be used, though, on UNIX machines, only the super user
"root"
has permission to use ports below 1024.</p>
<p>Only one listener is allowed for each IP and port combination.
Thus, if a listener is configured to one port with the wildcard IP
address,
you cannot configure another listener to the same port, even if you
specify
a particular IP. For example, if there are multiple IP addresses on the
web
server machine, and HTTP traffic needs to be allowed on port 8080 for all
IP addresses, this can be configured in two ways: set up one
listener using the wildcard IP (*) and port 8080, or set up multiple
listeners, one for each IP, all listening to port 8080. These two methods
cannot be mixed on a single port.</p>
<p>There are two types of listeners in LiteSpeed Web Server: plain
and secure
(SSL). Each secure listener requires a paired SSL private key and SSL
certificate.
The private key can be generated with an SSL toolkit like
OpenSSL. The SSL certificate can be self-signed or obtained from
an SSL certificate issuer like VeriSign or Thawte. You can share the same
private
key and certificate pair among multiple listeners. </p>
<a name="map"></a><h3>Listener to Virtual Host
Mapping</h3>
<p>LiteSpeed's Listener to Virtual Host Mapping provides extra
flexibility, allowing you
to:</p>
<ul>
<li>map one listener to one virtual host.</li>
<li>map one listener to different virtual hosts for different domain
names.</li>
<li>map multiple listeners to the same virtual host.</li>
<li>map multiple listeners to multiple virtual hosts depending on
their domain names.</li>
</ul>
<p>In Listener to Virtual Host Mapping, every listener has a virtual
host lookup table
with key-value pairs that specify a domain name (key) for
a particular virtual host (value).</p>
<p>When a browser tries to retrieve a web page from a web server, it
first uses a DNS lookup to
find the IP address associated with that domain name. It then sends a
request to establish a
TCP connection with the web server on a specific IP and port. If there is a
listener assigned
to that IP and port, a connection is established. The browser then sends an
HTTP
request, which includes, in the header, the domain name of the web site
being accessed.
The web server checks the lookup table associated with that listener for
the domain name
in the request. If a match is found, the request is routed to the virtual
host for processing.</p>
<p>In order to make a virtual host accessible through a specific
listener, you must
make sure that:</p>
<ol>
<li>DNS is configured properly to map the domain name of the web
site to the
IP used by that listener. How to configure DNS is beyond the scope of this
document.</li>
<li>A mapping to the virtual host for that domain name exists in
the listener's
lookup table.</li>
</ol>
<p>A catchall virtual host can be specified for one listener with the
wild card domain name
"*". When the server cannot find a matching virtual host, the
request will be routed
to the catchall virtual host. If there is no such catchall virtual host
configured,
the web server will return error code 404.</p>
</article><div class="ls-col-1-1"><footer
class="copyright">Copyright © 2003-2020. <a
href="https://www.litespeedtech.com">LiteSpeed Technologies
Inc.</a> All rights reserved.</footer>
</div></div>
</body>
</html>