Apache HTTP Server 版本 2.5
可用语言: en
描述 | 提供 FastCGI 应用程序的执行 |
---|---|
状态 | 外部 |
模块标识符 | fcgid_module |
源文件 | mod_fcgid.c |
兼容性 | Apache 2.0 及更高版本 |
任何分配给处理程序 fcgid-script
的程序都使用 FastCGI 协议进行处理;mod_fcgid
启动足够数量的程序实例来处理并发请求,这些程序将继续运行以处理进一步的传入请求。这比使用默认的 mod_cgi 或 mod_cgid 模块在每次请求时启动程序要快得多。但是,由 mod_fcgid
调用的程序会继续消耗资源,因此管理员必须权衡每次请求调用特定程序的影响与持续运行足够数量的实例所需的资源。
fcgid 调用的程序池在所有 httpd 工作进程之间共享。下面的配置指令允许管理员调整将同时运行的程序实例数量。
特定可执行文件通过以下方式分配此处理程序:名称包含由 AddHandler 指令定义的扩展名,或使用 SetHandler 指令(例如,对于特定目录中的所有文件,例如 cgi-bin)进行覆盖。
ASF 版本的 mod_fcgid 中进行了一些更改,这些更改可能会影响现有配置。所有文档都引用了指令的新名称。(旧名称仍然有效,但现在已弃用。)请阅读 升级说明 以了解详细信息。
有关使用 CGI 脚本与 Apache 的介绍,请参阅有关 使用 CGI 的动态内容 的通用教程。
ASF 版本的 mod_fcgid 中进行了以下更改,在从 Ryan Pan(潘庆峰)的原始版本升级时应考虑这些更改。
核心指令 ErrorDocument 允许用户为特定 HTTP 错误代码指定自定义错误页面。必须注意的是:如果错误页面是由 fastcgi 脚本生成的,mod_fcgid
将绕过 Apache 的 ErrorDocuments 将响应传递到输出过滤器链。相反,如果错误是由 Apache 本身生成的(例如,由于缺少资源而导致的 HTTP 404),则将使用设置的 ErrorDocument。此行为是最保守的行为,可以尽可能少地干扰 fastcgi 的响应生成逻辑。mod_proxy
显示相同的行为,但它提供 ProxyErrorOverride 来强制使用 ErrorDocuments,而 mod_fcgid
则没有。一个常见的解决方法是指示 fcgi 脚本生成 ErrorDocuments 以完全控制响应内容。
这些示例假设 mod_fcgid 和其他必要的模块已加载到服务器中,无论是内置的还是通过 LoadModule 指令加载的。
此外,示例配置使用访问控制指令提供对应用程序的完全访问权限,这些指令与 Apache 2.0 和 2.2 兼容。这些指令不适合所有环境,并且不适用于 Apache HTTP Server 的开发级别(Subversion 主干)。
第一个示例是一个非常简单的 Perl FastCGI 应用程序及其配置指令。这对于不需要特殊配置的 FastCGI 应用程序来说很典型。
#!/usr/bin/perl
use CGI::Fast;
while (my $q = CGI::Fast->new) {
print("Content-Type: text/plain\n\n");
foreach $var (sort(keys(%ENV))) {
$val = $ENV{$var};
$val =~ s|\n|\\n|g;
$val =~ s|"|\\"|g;
print "${var}=\"${val}\"\n";
}
}
<Directory /usr/local/apache/fcgi-bin/>
SetHandler fcgid-script
Options +ExecCGI
# 根据您的需求自定义接下来的两个指令。
Order allow,deny
Allow from all
</Directory>
PHP 应用程序通常使用 FcgidWrapper
指令和相应的包装脚本进行配置。包装脚本可以是定义应用程序所需任何环境变量的合适位置,例如 PHP_FCGI_MAX_REQUESTS
或任何其他变量。(环境变量也可以使用 FcgidInitialEnv
设置,但它们将应用于所有应用程序。)
以下示例使用包装脚本调用 PHP
<?php
phpinfo();
?>
# FcgidMaxRequestsPerProcess 应该 <= PHP_FCGI_MAX_REQUESTS
# 示例 PHP 包装脚本覆盖了默认的 PHP 设置。
FcgidMaxRequestsPerProcess 10000
# 如果 php.ini 中的 cgi.fix_pathinfo 设置为 1,则取消注释以下行
# php.ini
# FcgidFixPathinfo 1
Alias /phpapp/ /usr/local/phpapp/
<Location /phpapp/>
AddHandler fcgid-script .php
Options +ExecCGI
FcgidWrapper /usr/local/bin/php-wrapper .php
# 根据您的需求自定义接下来的两个指令。
Order allow,deny
Allow from all
</Location>
#!/bin/sh
# 设置所需的 PHP_FCGI_* 环境变量。
# 示例
# PHP FastCGI 进程默认在处理 500 个请求后退出。
PHP_FCGI_MAX_REQUESTS=10000
export PHP_FCGI_MAX_REQUESTS
# 用您启用了 FastCGI 的 PHP 可执行文件的路径替换
exec /usr/local/bin/php-cgi
默认情况下,PHP FastCGI 进程在处理 500 个请求后退出,并且它们可能在该模块已连接到应用程序并发送下一个请求后退出。发生这种情况时,将记录错误,并将 500 内部服务器错误
返回给客户端。此 PHP 行为可以通过将 PHP_FCGI_MAX_REQUESTS
设置为 0 来禁用,但这可能会导致 PHP 应用程序泄漏资源。或者,可以将 PHP_FCGI_MAX_REQUESTS
设置为比默认值高得多的值以减少此问题的发生频率。可以将 FcgidMaxRequestsPerProcess
设置为小于或等于 PHP_FCGI_MAX_REQUESTS
的值以解决此问题。
使用 mod_fcgid 时,应始终禁用 PHP 子进程管理 (PHP_FCGI_CHILDREN
),它一次只将一个请求路由到它生成的应用程序进程;因此,PHP 创建的任何子进程都不会有效地使用。(此外,PHP 子进程可能无法正常终止。) 默认情况下,以及使用环境变量设置 PHP_FCGI_CHILDREN=0
,PHP 子进程管理被禁用。
流行的 PHP APC opcode 缓存无法在 PHP FastCGI 进程之间共享缓存,除非 PHP 管理子进程。因此,缓存的有效性在使用 mod_fcgid 时受到限制;并发 PHP 请求将使用不同的 opcode 缓存。
mod_fcgid 有几种类型的控制,它们影响额外应用程序进程的创建
控制类型 | 指令 |
---|---|
进程数量的全局限制 | FcgidMaxProcesses |
每个应用程序的进程数量限制 | FcgidMaxProcessesPerClass |
生成新应用程序进程速率的限制 | FcgidSpawnScoreUpLimit 和其他与分数相关的指令 |
mod_fcgid 有几种类型的控制,它们影响现有应用程序进程的终止
控制类型 | 指令 |
---|---|
空闲一段时间后终止 | FcgidIdleTimeout |
处理一定数量的请求后终止 | FcgidMaxRequestsPerProcess |
在一定生命周期后终止 | FcgidProcessLifetime |
几个指令控制着进程类的处理。进程类是指使用相同可执行文件启动并共享某些其他特征(如虚拟主机和身份)的进程集。两个链接到或以其他方式引用相同可执行文件的命令共享相同的进程类。
某些设置或其他依赖于虚拟主机的概念,例如 FcgidInitialEnv
或进程类,仅在虚拟主机具有不同的服务器名称时才能区分它们。(有关更多信息,请参阅 ServerName
文档。) 在 FcgidInitialEnv
的情况下,如果两个虚拟主机具有相同的服务器名称,但具有不同的环境(如 FcgidInitialEnv
所定义),则用于特定请求的环境将是为导致启动 FastCGI 进程的请求的虚拟主机定义的环境。
有关每个进程的信息将显示在 mod_status
服务器状态页面中。
描述 | FastCGI 访问检查器的完整路径 |
---|---|
语法 | FcgidAccessChecker command |
默认值 | 无 |
上下文 | 目录,.htaccess |
覆盖 | FileInfo |
状态 | 外部 |
模块 | mod_fcgid |
访问检查或更正式地说,访问控制,是一种使用身份验证和授权之外的某些机制来验证客户端是否被允许访问资源的过程。
传递给应用程序以进行访问检查的关键环境变量是
FCGI_APACHE_ROLE
ACCESS_CHECKER
;通过检查当前角色,同一个 FastCGI 应用程序可以处理请求处理的多个阶段应用程序必须输出一个 Status
行来指示检查的结果。
在 2.3.6 之前,对于特定请求 URI,只能使用一种类型的 FastCGI 应用程序(AAA 或处理程序)。否则,可能会为请求处理的一个或多个阶段调用错误的 FastCGI 应用程序。
描述 | 设置为 'off' 以允许在失败时将访问控制传递给较低模块 |
---|---|
语法 | FcgidAccessCheckerAuthoritative On|Off |
默认值 | FcgidAccessCheckerAuthoritative On |
上下文 | 目录,.htaccess |
覆盖 | FileInfo |
状态 | 外部 |
模块 | mod_fcgid |
此指令控制当此模块配置了访问检查器并且它失败了请求时,是否允许其他访问检查器运行。如果此指令为 On
(默认)并且 FastCGI 访问检查器返回失败状态,则会向客户端返回失败,而不会给其他访问检查器机会允许访问。如果此指令为 Off
,则会调用其他访问检查器。
描述 | FastCGI 身份验证器的完整路径 |
---|---|
语法 | FcgidAuthenticator command |
默认值 | 无 |
上下文 | 目录,.htaccess |
覆盖 | FileInfo |
状态 | 外部 |
模块 | mod_fcgid |
身份验证是验证用户是否为其声称身份的过程。此指令指定 FastCGI 应用程序的完整路径,该应用程序将处理特定上下文的身份验证,例如目录。
身份验证时传递给应用程序的关键环境变量是
REMOTE_USER
REMOTE_PASSWD
FCGI_APACHE_ROLE
AUTHENTICATOR
;通过检查当前角色,同一个 FastCGI 应用程序可以处理请求处理的多个阶段应用程序必须输出一个 Status
行来指示身份验证的结果。
在 2.3.6 之前,对于特定请求 URI,只能使用一种类型的 FastCGI 应用程序(AAA 或处理程序)。否则,可能会为请求处理的一个或多个阶段调用错误的 FastCGI 应用程序。
描述 | 设置为 'off' 以允许在失败时将身份验证传递给较低模块 |
---|---|
语法 | FcgidAuthenticatorAuthoritative On|Off |
默认值 | FcgidAuthenticatorAuthoritative On |
上下文 | 目录,.htaccess |
覆盖 | FileInfo |
状态 | 外部 |
模块 | mod_fcgid |
此指令控制当此模块配置了身份验证器并且它失败了请求时,是否允许其他身份验证器运行。如果此指令为 On
(默认)并且 FastCGI 身份验证器返回失败状态,则会向客户端返回失败,而不会给其他身份验证器机会验证客户端身份。如果此指令为 Off
,则会调用其他身份验证器。
描述 | FastCGI 授权器的完整路径 |
---|---|
语法 | FcgidAuthorizer command |
默认值 | 无 |
上下文 | 目录,.htaccess |
覆盖 | FileInfo |
状态 | 外部 |
模块 | mod_fcgid |
授权是验证用户是否被允许访问特定资源的过程。此指令指定 FastCGI 应用程序的完整路径,该应用程序将处理特定上下文的授权,例如目录。
授权时传递给应用程序的关键环境变量是
REMOTE_USER
FCGI_APACHE_ROLE
AUTHORIZER
;通过检查当前角色,同一个 FastCGI 应用程序可以处理请求处理的多个阶段应用程序必须输出一个 Status
行来指示授权的结果。
在 2.3.6 之前,对于特定请求 URI,只能使用一种类型的 FastCGI 应用程序(AAA 或处理程序)。否则,可能会为请求处理的一个或多个阶段调用错误的 FastCGI 应用程序。
描述 | 设置为 'off' 以允许在失败时将授权传递给较低模块 |
---|---|
语法 | FcgidAuthorizerAuthoritative On|Off |
默认值 | FcgidAuthorizerAuthoritative On |
上下文 | 目录,.htaccess |
覆盖 | FileInfo |
状态 | 外部 |
模块 | mod_fcgid |
此指令控制当此模块配置了授权器并且它失败了请求时,是否允许其他授权器运行。如果此指令为 On
(默认)并且 FastCGI 授权器返回失败状态,则会向客户端返回失败,而不会给其他授权器机会访问资源。如果此指令为 Off
,则会调用其他授权器。
描述 | 扫描繁忙超时进程的间隔 |
---|---|
语法 | FcgidBusyScanInterval seconds |
默认值 | FcgidBusyScanInterval 120 |
上下文 | 服务器配置 |
状态 | 外部 |
模块 | mod_fcgid |
模块以该间隔执行 FcgidBusyTimeout
检查。
描述 | 在处理请求 FcgidBusyTimeout 后,FastCGI 应用程序将被杀死 |
---|---|
语法 | FcgidBusyTimeout seconds |
默认值 | FcgidBusyTimeout 300 |
上下文 | 服务器配置,虚拟主机 |
状态 | 外部 |
模块 | mod_fcgid |
这是请求处理的最大时间限制。如果 FastCGI 请求在 FcgidBusyTimeout 秒内未完成,它将被终止。由于检查是在 FcgidBusyScanInterval
定义的间隔内执行的,因此请求处理可能会被允许继续更长的时间。
此指令的目的是终止挂起的应用程序。对于处理请求可能需要更长时间的应用程序,可能需要增加默认超时时间。
描述 | 设置 FastCGI 命令的处理选项 |
---|---|
语法 | FcgidCmdOptions command option [option] ... |
上下文 | 服务器配置,虚拟主机 |
状态 | 外部 |
模块 | mod_fcgid |
此指令允许为 mod_fcgid 生成的特定命令指定处理选项。命令的每个选项都对应于另一个指令,该指令通常适用于在特定上下文中启动的所有命令。如果此指令未指定特定选项,则将使用默认值。
下表提供了选项和对应指令的列表
选项名称和语法 | 对应指令 |
---|---|
ConnectTimeout seconds |
FcgidConnectTimeout |
IdleTimeout seconds |
FcgidIdleTimeout |
InitialEnv name[=value] |
FcgidInitialEnv |
IOTimeout seconds |
FcgidIOTimeout |
MaxProcesses value |
FcgidMaxProcessesPerClass |
MaxProcessLifeTime seconds |
FcgidProcessLifeTime |
MaxRequestsPerProcess value |
FcgidMaxRequestsPerProcess |
MinProcesses value |
FcgidMinProcessesPerClass |
通过重复 InitialEnv
选项来定义多个环境变量。
FcgidCmdOptions /usr/local/bin/wrapper \
InitialEnv MAX_REQUESTS=2000 \
MaxRequestsPerProcess 2000 \
IOTimeout 90
当 /usr/local/bin/wrapper
生成时,它的初始环境包含 MAX_REQUESTS=2000
环境变量设置;此外,mod_fcgid 将在它处理了 2000 个请求后终止它,并且 I/O 操作将在 90 秒后超时。对应于其他选项的指令,例如 FcgidIdleTimeout
或 FcgidProcessLifeTime
,将被忽略此命令;对于 FcgidCmdOptions
上未指定的选项,将使用默认值。
描述 | 连接到 FastCGI 服务器的超时时间 |
---|---|
语法 | FcgidConnectTimeout seconds |
默认值 | FcgidConnectTimeout 3 |
上下文 | 服务器配置,虚拟主机 |
状态 | 外部 |
模块 | mod_fcgid |
这是模块在尝试连接到 Windows 上的 FastCGI 应用程序时将等待的最大时间段。(此指令在 Unix 上不受尊重,其中 AF_UNIX 默认值将适用。)
此设置将应用于为该服务器或虚拟主机生成的所以应用程序。使用 FcgidCmdOptions
将此设置应用于单个应用程序。
描述 | 扫描已退出进程的间隔 |
---|---|
语法 | FcgidErrorScanInterval seconds |
默认值 | FcgidErrorScanInterval 3 |
上下文 | 服务器配置 |
状态 | 外部 |
模块 | mod_fcgid |
这是模块将处理挂起的进程终止的间隔。对于任何已超过 FcgidIdleTimeout
或 FcgidProcessLifeTime
的进程,终止是挂起的。
Unix:mod_fcgid 将使用 SIGTERM 终止此类进程;如果进程在下次扫描期间仍然处于活动状态,则该进程将使用 SIGKILL 终止。因此,此指令控制在强制杀死之前有序进程终止的时间量。
描述 | 镜像 PHP cgi.fix_pathinfo 设置 |
---|---|
语法 | FcgidFixPathinfo 1 |
默认值 | FcgidFixPathinfo 0 |
上下文 | 服务器配置 |
状态 | 外部 |
模块 | mod_fcgid |
此指令启用特殊的SCRIPT_NAME
处理,允许PHP提供额外的路径信息。FcgidFixPathinfo
的设置应与php.ini
中的cgi.fix_pathinfo
设置一致。
描述 | 空闲超时进程扫描间隔 |
---|---|
语法 | FcgidIdleScanInterval 秒 |
默认值 | FcgidIdleScanInterval 120 |
上下文 | 服务器配置 |
状态 | 外部 |
模块 | mod_fcgid |
这是模块搜索超过FcgidIdleTimeout
或FcgidProcessLifeTime
的进程的间隔。
描述 | 空闲的FastCGI应用程序将在FcgidIdleTimeout后被杀死 |
---|---|
语法 | FcgidIdleTimeout 秒 |
默认值 | FcgidIdleTimeout 300 |
上下文 | 服务器配置,虚拟主机 |
状态 | 外部 |
模块 | mod_fcgid |
如果该类进程数量超过FcgidMinProcessesPerClass
,则在此时间段内未处理请求的应用程序进程将被终止。值为0
将禁用检查。
此空闲超时检查以配置的FcgidIdleScanInterval
频率执行。
此设置将应用于为该服务器或虚拟主机生成的所以应用程序。使用 FcgidCmdOptions
将此设置应用于单个应用程序。
描述 | 要传递给FastCGI的环境变量名称和可选值。 |
---|---|
语法 | FcgidInitialEnv 名称 [ 值 ] |
默认值 | 无 |
上下文 | 服务器配置,虚拟主机 |
状态 | 外部 |
模块 | mod_fcgid |
使用FcgidInitialEnv
定义要传递给FastCGI应用程序的环境变量。此指令可以多次使用。
此设置将应用于为该服务器或虚拟主机生成的所以应用程序。使用 FcgidCmdOptions
将此设置应用于单个应用程序。
描述 | 与FastCGI服务器的通信超时 |
---|---|
语法 | FcgidIOTimeout 秒 |
默认值 | FcgidIOTimeout 40 |
上下文 | 服务器配置,虚拟主机 |
状态 | 外部 |
模块 | mod_fcgid |
这是模块在尝试从FastCGI应用程序读取或写入时将等待的最大时间段。
FastCGI应用程序必须在此时间段内开始生成响应。根据需要增加此指令以处理响应时间相对较长的应用程序。
此设置将应用于为该服务器或虚拟主机生成的所以应用程序。使用 FcgidCmdOptions
将此设置应用于单个应用程序。
描述 | AF_UNIX套接字(Unix)或管道(Windows)的目录 |
---|---|
语法 | FcgidIPCDir 路径名 |
默认值 | FcgidIPCDir logs/fcgidsock |
上下文 | 服务器配置 |
状态 | 外部 |
模块 | mod_fcgid |
此模块使用AF_UNIX套接字或命名管道(取决于平台)与FastCGI应用程序通信。此指令指定创建这些套接字或命名管道的目录。
描述 | FastCGI应用程序进程的最大数量 |
---|---|
语法 | FcgidMaxProcesses 值 |
默认值 | FcgidMaxProcesses 1000 |
上下文 | 服务器配置 |
状态 | 外部 |
模块 | mod_fcgid |
此指令设置可以同时活动的FastCGI应用程序进程的最大数量。
描述 | 一类FastCGI应用程序的最大进程数 |
---|---|
语法 | FcgidMaxProcessesPerClass 值 |
默认值 | FcgidMaxProcessesPerClass 100 |
上下文 | 服务器配置,虚拟主机 |
状态 | 外部 |
模块 | mod_fcgid |
此指令设置可以为每个进程类启动的进程的最大数量。
此设置将应用于为该服务器或虚拟主机生成的所以应用程序。使用 FcgidCmdOptions
将此设置应用于单个应用程序。
描述 | 将保存在内存中的请求的最大大小 |
---|---|
语法 | FcgidMaxRequestInMem 字节 |
默认值 | FcgidMaxRequestInMem 65536 |
上下文 | 服务器配置,虚拟主机 |
状态 | 外部 |
模块 | mod_fcgid |
此模块在将请求主体发送到应用程序之前从客户端读取整个请求主体。通常,请求主体将存储在内存中。一旦从客户端读取的请求主体数量超过FcgidMaxRequestInMem
字节,剩余的请求主体将存储在临时文件中。
描述 | 最大HTTP请求长度 |
---|---|
语法 | FcgidMaxRequestLen 字节 |
默认值 | FcgidMaxRequestLen 131072 |
上下文 | 服务器配置,虚拟主机 |
状态 | 外部 |
模块 | mod_fcgid |
如果请求主体的大小超过此数量,请求将失败,并显示500 Server Error
。
管理员应根据应用程序要求将此更改为适合其站点的值。
在2.3.6之前,此值默认为1GB。大多数早期版本的使用者应使用此指令设置更合理的限制。
描述 | 每个FastCGI应用程序处理的最大请求数 |
---|---|
语法 | FcgidMaxRequestsPerProcess 值 |
默认值 | FcgidMaxRequestsPerProcess 0 |
上下文 | 服务器配置,虚拟主机 |
状态 | 外部 |
模块 | mod_fcgid |
FastCGI应用程序进程将在处理指定数量的请求后终止。值为0
将禁用检查。
为了方便现有配置的迁移,目前接受值为-1
。它与0
的处理方式相同。
某些应用程序(尤其是作为FastCGI的PHP)具有自己的机制,可以在处理一定数量的请求后终止。此指令可用于在应用程序处理完其限制后避免向其发送更多请求。
如果设置此值,则可能需要调整FcgidSpawnScoreUpLimit
或其他与分数相关的指令,以允许更频繁地创建进程。
此设置将应用于为该服务器或虚拟主机生成的所以应用程序。使用 FcgidCmdOptions
将此设置应用于单个应用程序。
描述 | 一类FastCGI应用程序的最小进程数 |
---|---|
语法 | FcgidMinProcessesPerClass 值 |
默认值 | FcgidMinProcessesPerClass 3 |
上下文 | 服务器配置,虚拟主机 |
状态 | 外部 |
模块 | mod_fcgid |
此指令设置在完成请求后将在进程类中保留的最小进程数量。
此设置将应用于为该服务器或虚拟主机生成的所以应用程序。使用 FcgidCmdOptions
将此设置应用于单个应用程序。
描述 | CGI输出缓冲区大小 |
---|---|
语法 | FcgidOutputBufferSize 字节 |
默认值 | FcgidOutputBufferSize 65536 |
上下文 | 服务器配置,虚拟主机 |
状态 | 外部 |
模块 | mod_fcgid |
这是模块在将数据刷新到客户端之前从FastCGI应用程序读取的响应数据的最大数量。
描述 | 将作为环境变量传递给FastCGI的标头名称。 |
---|---|
语法 | FcgidPassHeader 名称 |
默认值 | 无 |
上下文 | 服务器配置,虚拟主机 |
状态 | 外部 |
模块 | mod_fcgid |
此指令指定将作为环境变量传递给FastCGI应用程序的请求标头的名称。环境变量的名称源自此指令上指定的值,如下所述
传统行为是使用此指令上指定的值作为环境变量名称,并将连字符转换为下划线。不执行大小写转换。
从版本2.3.6开始,将创建另一个环境变量。此指令上指定的值将转换为大写,并以HTTP_
为前缀,连字符将转换为下划线。
大多数请求标头已经作为环境变量提供给应用程序,并且通常以HTTP_
为前缀。(值得注意的例外是Content-type
和Content-length
,它们没有HTTP_
前缀。)因此,此指令仅在有意省略的请求标头(例如Authorization
和Proxy-Authorization
)时才需要。仅在绝对必要时才传递这些请求标头。
描述 | 最大FastCGI应用程序进程生命周期 |
---|---|
语法 | FcgidProcessLifeTime 秒 |
默认值 | FcgidProcessLifeTime 3600 |
上下文 | 服务器配置,虚拟主机 |
状态 | 外部 |
模块 | mod_fcgid |
如果该类进程数量超过FcgidMinProcessesPerClass
,则存在时间超过此时间的空闲应用程序进程将被终止。值为0
将禁用检查。
此进程生命周期检查以配置的FcgidIdleScanInterval
频率执行。
此设置将应用于为该服务器或虚拟主机生成的所以应用程序。使用 FcgidCmdOptions
将此设置应用于单个应用程序。
描述 | 共享内存文件路径 |
---|---|
语法 | FcgidProcessTableFile 路径名 |
默认值 | FcgidProcessTableFile logs/fcgid_shm |
上下文 | 服务器配置 |
状态 | 外部 |
模块 | mod_fcgid |
此模块在Unix上使用共享内存来维护httpd进程之间共享的状态。此指令指定共享内存文件的名称。
描述 | 每次生成都会将此值添加到进程活动分数。 |
---|---|
语法 | FcgidSpawnScore 值 |
默认值 | FcgidSpawnScore 1 |
上下文 | 服务器配置 |
状态 | 外部 |
模块 | mod_fcgid |
此指令的值越低,允许的生成率越高。
有关更多信息,请参阅FcgidSpawnScoreUpLimit
指令。
描述 | 允许生成发生的进程活动分数的最大值 |
---|---|
语法 | FcgidSpawnScoreUpLimit 值 |
默认值 | FcgidSpawnScoreUpLimit 10 |
上下文 | 服务器配置 |
状态 | 外部 |
模块 | mod_fcgid |
为每个FastCGI应用程序维护一个进程活动分数;该分数用于控制生成率,以避免对系统造成过大的负载,特别是对于反复异常退出的应用程序。
FcgidSpawnScore
的值将为每个生成的应用程序进程添加到分数中。FcgidTerminationScore
的值将为每个终止的应用程序进程添加到分数中。FcgidTimeScore
的值将每秒从分数中减去。
当当前分数高于FcgidSpawnScoreUpLimit
的值时,将不会生成任何其他应用程序进程;后续请求必须等待现有进程变为空闲,或者等待分数降至限制以下。
如果在正常负载下达到限制,仅仅增加限制可能还不够,因为这只会延迟再次达到限制的时间。降低FcgidSpawnScore
和/或FcgidTerminationScore
的值,或增加FcgidTimeScore
的值,以允许更高的生成率。
描述 | 每个终止的进程都会将此值添加到进程活动分数。 |
---|---|
语法 | FcgidTerminationScore 值 |
默认值 | FcgidTerminationScore 2 |
上下文 | 服务器配置 |
状态 | 外部 |
模块 | mod_fcgid |
此指令的值越低,允许的生成率越高。负值在某些情况下可能很有用,例如允许替换进程而不会增加分数。
有关更多信息,请参阅FcgidSpawnScoreUpLimit
指令。
描述 | 每秒从进程活动分数中减去的数量 |
---|---|
语法 | FcgidTimeScore 值 |
默认值 | FcgidTimeScore 1 |
上下文 | 服务器配置 |
状态 | 外部 |
模块 | mod_fcgid |
此指令的值越高,允许的生成率越高。
有关更多信息,请参阅FcgidSpawnScoreUpLimit
指令。
描述 | 用于 fcgi 工作进程的作业控制孤儿进程预防。 |
---|---|
语法 | FcgidWin32PreventOrphans On|Off |
默认值 | FcgidWin32PreventOrphans Off |
上下文 | 服务器配置 |
状态 | 外部 |
模块 | mod_fcgid |
仅在 Windows 上使用作业控制对象来强制关闭 httpd 工作进程终止时由 httpd 工作进程创建的所有 fcgi 进程。以这种方式终止的进程没有机会优雅地清理、完成挂起的磁盘写入或类似的关闭事务,因此此行为是实验性的,默认情况下处于禁用状态。
描述 | CGI 包装器设置 |
---|---|
语法 | FcgidWrapper command [ suffix ] [ virtual ] |
默认值 | 无 |
上下文 | 服务器配置、虚拟主机、目录、.htaccess |
覆盖 | FileInfo |
状态 | 外部 |
模块 | mod_fcgid |
给定的命令用于生成 FCGI 服务器进程。如果未使用此指令,则将使用请求 URL 指向的文件。可以使用引号将命令和选项括起来,以包含命令的选项。
可选的 suffix
参数将此 FCGI 服务器的使用限制为所有具有给定确切路径后缀的 URL。后缀需要以 '.
' 开头。
virtual
标志表示不会检查请求 URL 是否实际指向现有文件。唯一需要存在的文件是包装器本身。
此指令可以多次使用。在没有后缀的情况下定义的包装器用作默认值,以防没有后缀匹配。
可用语言: en