用户手册
Version 1.9 — Rev. 3

# 外部应用

LiteSpeed网络服务器可以转发外部应用程序的请求，以处理和生成动态内容。
从2.0版本起, LiteSpeed Web Server已经支持了7种外部应用: CGI, FastCGI, web server, servlet engine, LiteSpeed SAPI application, load balancer, and piped logger.

- CGI是Common Gateway Interface的缩写. 目前的标准是 CGI/1.1. CGI应用程序在独立的进程中运行. 一个CGI进程将为每个请求启动,并且在完成请求后退出.
- FastCGI 是一个快速,开源,安全的web服务器接口,它解决了CGI固有的性能问题,而没有引入专有API(应用编程接口), 对于更多的信息,请访问 https://fastcgi-archives.github.io/.
  在LiteSpeed Web Server中，FastCGI应用可以发挥两种作用：生成动态响应（Responder角色）或 授权请求 (授权者的角色). LiteSpeed Web Server进一步定义了两种类型的FastCGI应用程序:本地FastCGI和远程FastCGI. Web服务器可根据需要自动启动本地FastCGI应用程序. Web服务器不会启动远程FastCGI应用程序。 (它们可以在远程计算机或同一计算机上运行)
- Web服务器是指支持HTTP 1.0/1.1协议的服务器应用程序. LiteSpeed网络服务器可以作为一个透明的反向代理来加速和保护网络服务器和应用服务器. 在与后端网络服务器进行通信时，LiteSpeed将始终尝试利用持久连接，以实现最高性能。
- 像Apache Tomcat和Jetty,servlet引擎是实现了Java servlets和Java Server Pages的应用程序. LiteSpeed可以通过AJPv1.3（Apache JServ协议1.3版）与servlet引擎进行通信. Servlet引擎不能由Web服务器启动，可以设置在远程机器上运行.
- LiteSpeed SAPI（LiteSpeed Server Application Programming Interface）应用程序通过LSAPI与LiteSpeed Web Server通信。LSAPI是一种快速、可扩展的服务器接口，专为LiteSpeed Web Server实现最高效率而设计。
  LSAPI的工作机制与FastCGI类似，但LSAPI应用程序可比同类FastCGI应用程序快最多30%。对于受支持的应用程序，强烈建议使用LSAPI而不是FastCGI。（LSAPI目前支持用PHP、Ruby和Python编写的应用程序。）
  有关LSAPI的更多信息，请访问 https://www.litespeedtech.com/open-source/litespeed-sapi .
- 负载均衡器是一种虚拟外部应用，它会根据工作负载将请求分配给后端worker应用。worker应用可以是CGI、FastCGI、Web服务器、Servlet引擎或LSAPI应用。一个负载均衡器下可以混合不同类型的应用程序。负载均衡器和管道日志器不能作为worker应用使用。
- 管道日志器是一种可以实时处理访问日志的应用程序，例如将访问日志写入数据库或执行实时统计计算。

与CGI应用程序不同，FastCGI应用程序、LSAPI应用程序和Servlet引擎在处理完请求后不会退出。应用进程会保持运行，并尽可能处理更多请求。套接字连接也可以被多个请求复用。
外部应用程序可以在外部应用部分设置。但是，外部应用程序不能单独工作。还必须配置其他设置，使Web服务器知道应将哪些请求发送到哪个应用程序。在LiteSpeed Web Server中有两种配置方式：

1. 将外部应用程序设置为特定上下文的处理程序。
2. 通过文件后缀绑定，将外部应用程序设置为脚本语言的处理程序。

FastCGI应用程序、LSAPI应用程序、Web服务器、Servlet引擎和负载均衡器必须先在外部应用部分定义，然后才能配置它们来处理上下文或脚本后缀。不需要在外部应用部分定义CGI应用程序。
外部应用程序可以在服务器级别或虚拟主机级别配置。在服务器级别配置时，应用程序可供所有虚拟主机使用。在虚拟主机级别配置时，只有该虚拟主机可以使用。

### 类型

#### 描述

指定外部应用程序的类型。应用程序类型根据它们提供的服务或与服务器通信所使用的协议区分。可选类型包括：

- LiteSpeed SAPI App: 使用LSAPI协议与Web服务器通信的应用程序。
- Web Server (Proxy): 支持HTTP协议的Web服务器或应用服务器。
- FastCGI App: 具有Responder角色的FastCGI应用程序。
- FastCGI Authorizer: 具有Authorizer角色的FastCGI应用程序。
- SCGI App: 使用SCGI协议与Web服务器通信的应用程序。
- Servlet Engine: 带AJPv13连接器的Servlet引擎，例如Tomcat。
- Piped Logger: 可处理从STDIN流接收的访问日志条目的应用程序。
- Load Balancer: 可在worker应用程序之间进行负载均衡的虚拟应用程序。
- uWSGI: 使用uWSGI协议与Web服务器通信的应用程序。

#### 语法

从下拉列表选择

#### 提示

Information 大多数应用程序会使用LSAPI或FastCGI协议。LSAPI支持PHP、Ruby和Python。Perl可与FastCGI一起使用。（PHP、Ruby和Python也可以设置为使用FastCGI运行，但使用LSAPI运行更快。）Java使用Servlet引擎。