Spade

Mini Shell

Directory:~$ /usr/local/lsws/docs/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ //usr/local/lsws/docs/ExtApp_Help.html

<!DOCTYPE html>
<head>
  <meta charset="utf-8" />
  <meta http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1" />
  <title>LiteSpeed Web Server Users' Manual - External
Apps</title>
  <meta name="description" content="LiteSpeed Web Server
Users' Manual - External Apps." />
  <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
&nbsp;&#8212;&nbsp;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>
        <a href="config.html">Configuration</a>
	    <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><span class="current"><a
href="ExtApp_Help.html">External
Apps</a></span></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">&#171 <a
href="PageSpeed_Config.html">PageSpeed
Config</a></div><div class="center"><a
href="config.html">Configuration</a></div><div
class="next"><a
href="ScriptHandler_Help.html">Script Handler</a>
&#187;</div></div>
<h1>External Apps</h1><section
class="ls-spacer-small-bottom">LiteSpeed web server can
forward requests to external applications to process and generate dynamic
content.


Since 2.0, LiteSpeed Web Server has supported seven types of external
applications: CGI, FastCGI, web server, servlet
engine, LiteSpeed SAPI application, load balancer, and piped logger.

<ul>
  <li>
    CGI stands for Common Gateway Interface. The current standard is
CGI/1.1. CGI applications run in standalone
    processes. A CGI process is started for each request and will exit
after finishing the request.
  </li>
  <li>
    FastCGI is a fast, open, and secure web server interface that solves
the performance problems inherent in CGI without
    introducing the overhead and complexity of proprietary APIs
(Application Programming Interfaces).  For more information,
    please visit <a
href="https://fastcgi-archives.github.io/">https://fastcgi-archives.github.io/</a>.


    On LiteSpeed Web Server, FastCGI applications can take two roles:
generating dynamic responses (a responder role) or
    authorizing requests (an authorizer role). LiteSpeed Web Server further
defines two types of FastCGI applications: local
    FastCGI and remote FastCGI. Local FastCGI applications are started
automatically by the web server on demand.
    Remote FastCGI applications are not started by the web server. (They
can run on a remote machine or on the same
    machine.)
  </li>
  <li>
    A web server is a server application that supports HTTP 1.0/1.1
protocols. LiteSpeed web server can serve as a
    transparent reverse proxy to accelerate and protect web servers and
application servers. When communicating with
    backend web servers, LiteSpeed will always try to utilize persistent
connections in order to achieve the highest
    performance.
  </li>
  <li>
    A servlet engine is an application, like Apache Tomcat and Jetty, that
implements Java servlets and Java Server Pages.
    LiteSpeed can communicate with servlet engines through AJPv1.3 (Apache
JServ Protocol version 1.3). Servlet engine
    cannot be started by the web server and can be setup to run on a remote
machine.
  </li>
  <li>
    A LiteSpeed SAPI (LiteSpeed Server Application Programming Interface)
application is an application that communicates
    with LiteSpeed Web Server through LSAPI, a fast, scalable server
interface specifically designed for LiteSpeed Web
    Server to achieve maximum efficiency.


    LSAPI's mechanism of action are similar to FastCGI, but LSAPI
applications can be up to 30% faster than comparable
    FastCGI applications. LSAPI is highly recommended over FastCGI for
supported applications. (LSAPI currently supports
    applications written in PHP, Ruby, and Python.)


    For more information about LSAPI, please visit
    <a
href="https://www.litespeedtech.com/open-source/litespeed-sapi">
      https://www.litespeedtech.com/open-source/litespeed-sapi
    </a>.
  </li>
  <li>
    A load balancer is a virtual external application, which assigns
requests to backend worker applications based on
    workload. Worker applications can be CGI, FastCGI, web server, servlet
engine, or LSAPI applications. Different types of
    applications can be mixed together under one load balancer. Load
balancers and piped loggers cannot be used as
    worker applications.
  </li>
  <li>
    A piped logger is an application that can process access logs in
real-time, writing an access log into database or
    performing real-time statistics calculations, for example.
  </li>
</ul>


Unlike CGI applications, FastCGI applications, LSAPI applications, and
servlet engine do not exit after processing a
request. The application process will stay/persist and serve as many
requests as it can. The socket connection can be
reused for multiple requests as well.


External applications can be set up in the {PAGE=ExtApp_Help} section.
External applications cannot, however, function
on their own. Additional settings must be configured so that the web server
knows which requests to send to which
application. There are two ways to to configure this in LiteSpeed Web
Server:


<ol>
  <li> Set the external application as a handler for a specific
context.</li>
  <li> Set the external application as a handler of a script language
via file suffix binding.</li>
</ol>


FastCGI applications, LSAPI applications, web servers, servlet engines, and
load balancers have to be defined in the
{PAGE=ExtApp_Help} section before you can configure them to handle a
context or script suffix. It is not necessary to
define CGI applications in the {PAGE=ExtApp_Help} section.


External applications can be configured at the server level or at the
virtual host level. When configured at the server level, the
application can be used by all virtual hosts. When configured at the
virtual host level, it can only be used by that virtual
host.</section>
<h2 id="top">Table of Contents</h2><section
class="toc"><section
class="toc-row"><header>New External
App</header><p>
<a
href="#extAppType">Type</a></p></section>
</section>
<section><div class="helpitem"><article
class="ls-helpitem"><div><header
id="extAppType"><h3>Type<span
class="ls-permlink"><a
href="#extAppType"></a></span><span
class="top"><a
href="#top">&#8657;</a></span></h3></header></div><h4>Description</h4><p>Specifies
the type of external application. Application types are differentiated by
the service they provide or the protocol they use to communicate with the
server. Choose from <ul>   <li><span
class="val">FastCGI</span>: a FastCGI application with a
<span class="val">Responder</span> role.</li>  
<li><span class="val">FastCGI
Authorizer</span>: a FastCGI application with an <span
class="val">Authorizer</span> role</li>  
<li><span class="val">Servlet Engine</span>: a
servlet engine with an AJPv13 connector, such as Tomcat.</li>  
<li><span class="val">Web Server</span>: a web
server or application server that supports HTTP protocol.</li>  
<li><span class="val">LiteSpeed SAPI
App</span>: an application that communicates with the web server
using LSAPI protocol.</li>   <li><span
class="val">Load Balancer</span>: a virtual application
that can balance load among worker applications.</li>  
<li><span class="val">Piped Logger</span>: an
application that can process access log entries received on its STDIN
stream.</li> </ul></p>
<h4>Syntax</h4><p>Select from drop down list</p>
<h4>Tips</h4><p><span title="Information"
class="ls-icon-info"></span> Most applications will use
either LSAPI or FastCGI protocol. LSAPI supports PHP, Ruby, and Python.
Perl can be used with FastCGI. (PHP, Ruby, and Python can also be set up to
run using FastCGI, but they run faster using LSAPI.) Java uses servlet
engines.</p> </article> </div>
</section>
</article><div  class="ls-col-1-1"><footer
class="copyright">Copyright &copy; 2003-2020. <a
href="https://www.litespeedtech.com">LiteSpeed Technologies
Inc.</a> All rights reserved.</footer>
</div></div>
</body>
</html>