<-
Apache > HTTP 服务器 > 文档 > 版本 2.5 > 模块

Apache 模块 mod_fcgid

可用语言:  en 

描述提供 FastCGI 应用程序的执行
状态外部
模块标识符fcgid_module
源文件mod_fcgid.c
兼容性Apache 2.0 及更高版本

摘要

任何分配给处理程序 fcgid-script 的程序都使用 FastCGI 协议进行处理;mod_fcgid 启动足够数量的程序实例来处理并发请求,这些程序将继续运行以处理进一步的传入请求。这比使用默认的 mod_cgimod_cgid 模块在每次请求时启动程序要快得多。但是,由 mod_fcgid 调用的程序会继续消耗资源,因此管理员必须权衡每次请求调用特定程序的影响与持续运行足够数量的实例所需的资源。

fcgid 调用的程序池在所有 httpd 工作进程之间共享。下面的配置指令允许管理员调整将同时运行的程序实例数量。

特定可执行文件通过以下方式分配此处理程序:名称包含由 AddHandler 指令定义的扩展名,或使用 SetHandler 指令(例如,对于特定目录中的所有文件,例如 cgi-bin)进行覆盖。

ASF 版本的 mod_fcgid 中进行了一些更改,这些更改可能会影响现有配置。所有文档都引用了指令的新名称。(旧名称仍然有效,但现在已弃用。)请阅读 升级说明 以了解详细信息。

有关使用 CGI 脚本与 Apache 的介绍,请参阅有关 使用 CGI 的动态内容 的通用教程。

mod_fcgid 要求 mod_unixd 在 httpd 配置中先于它加载。

主题

指令

另请参阅

top

升级说明

ASF 版本的 mod_fcgid 中进行了以下更改,在从 Ryan Pan(潘庆峰)的原始版本升级时应考虑这些更改。

top

Fcgid 和 Apache ErrorDocument

核心指令 ErrorDocument 允许用户为特定 HTTP 错误代码指定自定义错误页面。必须注意的是:如果错误页面是由 fastcgi 脚本生成的,mod_fcgid 将绕过 Apache 的 ErrorDocuments 将响应传递到输出过滤器链。相反,如果错误是由 Apache 本身生成的(例如,由于缺少资源而导致的 HTTP 404),则将使用设置的 ErrorDocument。此行为是最保守的行为,可以尽可能少地干扰 fastcgi 的响应生成逻辑。mod_proxy 显示相同的行为,但它提供 ProxyErrorOverride 来强制使用 ErrorDocuments,而 mod_fcgid 则没有。一个常见的解决方法是指示 fcgi 脚本生成 ErrorDocuments 以完全控制响应内容。

top

示例

注意

这些示例假设 mod_fcgid 和其他必要的模块已加载到服务器中,无论是内置的还是通过 LoadModule 指令加载的。

此外,示例配置使用访问控制指令提供对应用程序的完全访问权限,这些指令与 Apache 2.0 和 2.2 兼容。这些指令不适合所有环境,并且不适用于 Apache HTTP Server 的开发级别(Subversion 主干)。

第一个示例是一个非常简单的 Perl FastCGI 应用程序及其配置指令。这对于不需要特殊配置的 FastCGI 应用程序来说很典型。

Perl FastCGI 应用程序 - /usr/local/apache/fcgi-bin/foo.pl

#!/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 应用程序 - /usr/local/phpapp/phpinfo.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>

PHP 包装脚本 - /usr/local/bin/php-wrapper

#!/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 的特殊注意事项

默认情况下,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 缓存。

top

进程管理

mod_fcgid 有几种类型的控制,它们影响额外应用程序进程的创建

控制类型指令
进程数量的全局限制 FcgidMaxProcesses
每个应用程序的进程数量限制 FcgidMaxProcessesPerClass
生成新应用程序进程速率的限制 FcgidSpawnScoreUpLimit 和其他与分数相关的指令

mod_fcgid 有几种类型的控制,它们影响现有应用程序进程的终止

控制类型指令
空闲一段时间后终止 FcgidIdleTimeout
处理一定数量的请求后终止 FcgidMaxRequestsPerProcess
在一定生命周期后终止 FcgidProcessLifetime

几个指令控制着进程类的处理。进程类是指使用相同可执行文件启动并共享某些其他特征(如虚拟主机和身份)的进程集。两个链接到或以其他方式引用相同可执行文件的命令共享相同的进程类。

注意

某些设置或其他依赖于虚拟主机的概念,例如 FcgidInitialEnv 或进程类,仅在虚拟主机具有不同的服务器名称时才能区分它们。(有关更多信息,请参阅 ServerName 文档。) 在 FcgidInitialEnv 的情况下,如果两个虚拟主机具有相同的服务器名称,但具有不同的环境(如 FcgidInitialEnv 所定义),则用于特定请求的环境将是为导致启动 FastCGI 进程的请求的虚拟主机定义的环境。

有关每个进程的信息将显示在 mod_status 服务器状态页面中。

top

FcgidAccessChecker 指令

描述FastCGI 访问检查器的完整路径
语法FcgidAccessChecker command
默认值
上下文目录,.htaccess
覆盖FileInfo
状态外部
模块mod_fcgid

访问检查或更正式地说,访问控制,是一种使用身份验证和授权之外的某些机制来验证客户端是否被允许访问资源的过程。

传递给应用程序以进行访问检查的关键环境变量是

FCGI_APACHE_ROLE
设置为 ACCESS_CHECKER;通过检查当前角色,同一个 FastCGI 应用程序可以处理请求处理的多个阶段

应用程序必须输出一个 Status 行来指示检查的结果。

警告

在 2.3.6 之前,对于特定请求 URI,只能使用一种类型的 FastCGI 应用程序(AAA 或处理程序)。否则,可能会为请求处理的一个或多个阶段调用错误的 FastCGI 应用程序。

top

FcgidAccessCheckerAuthoritative 指令

描述设置为 'off' 以允许在失败时将访问控制传递给较低模块
语法FcgidAccessCheckerAuthoritative On|Off
默认值FcgidAccessCheckerAuthoritative On
上下文目录,.htaccess
覆盖FileInfo
状态外部
模块mod_fcgid

此指令控制当此模块配置了访问检查器并且它失败了请求时,是否允许其他访问检查器运行。如果此指令为 On(默认)并且 FastCGI 访问检查器返回失败状态,则会向客户端返回失败,而不会给其他访问检查器机会允许访问。如果此指令为 Off,则会调用其他访问检查器。

top

FcgidAuthenticator 指令

描述FastCGI 身份验证器的完整路径
语法FcgidAuthenticator command
默认值
上下文目录,.htaccess
覆盖FileInfo
状态外部
模块mod_fcgid

身份验证是验证用户是否为其声称身份的过程。此指令指定 FastCGI 应用程序的完整路径,该应用程序将处理特定上下文的身份验证,例如目录。

身份验证时传递给应用程序的关键环境变量是

REMOTE_USER
设置为客户端的用户 ID
REMOTE_PASSWD
设置为客户端提供的纯文本密码
FCGI_APACHE_ROLE
设置为 AUTHENTICATOR;通过检查当前角色,同一个 FastCGI 应用程序可以处理请求处理的多个阶段

应用程序必须输出一个 Status 行来指示身份验证的结果。

警告

在 2.3.6 之前,对于特定请求 URI,只能使用一种类型的 FastCGI 应用程序(AAA 或处理程序)。否则,可能会为请求处理的一个或多个阶段调用错误的 FastCGI 应用程序。

top

FcgidAuthenticatorAuthoritative 指令

描述设置为 'off' 以允许在失败时将身份验证传递给较低模块
语法FcgidAuthenticatorAuthoritative On|Off
默认值FcgidAuthenticatorAuthoritative On
上下文目录,.htaccess
覆盖FileInfo
状态外部
模块mod_fcgid

此指令控制当此模块配置了身份验证器并且它失败了请求时,是否允许其他身份验证器运行。如果此指令为 On(默认)并且 FastCGI 身份验证器返回失败状态,则会向客户端返回失败,而不会给其他身份验证器机会验证客户端身份。如果此指令为 Off,则会调用其他身份验证器。

top

FcgidAuthorizer 指令

描述FastCGI 授权器的完整路径
语法FcgidAuthorizer command
默认值
上下文目录,.htaccess
覆盖FileInfo
状态外部
模块mod_fcgid

授权是验证用户是否被允许访问特定资源的过程。此指令指定 FastCGI 应用程序的完整路径,该应用程序将处理特定上下文的授权,例如目录。

授权时传递给应用程序的关键环境变量是

REMOTE_USER
设置为客户端的用户 ID,该用户已通过身份验证
FCGI_APACHE_ROLE
设置为 AUTHORIZER;通过检查当前角色,同一个 FastCGI 应用程序可以处理请求处理的多个阶段

应用程序必须输出一个 Status 行来指示授权的结果。

警告

在 2.3.6 之前,对于特定请求 URI,只能使用一种类型的 FastCGI 应用程序(AAA 或处理程序)。否则,可能会为请求处理的一个或多个阶段调用错误的 FastCGI 应用程序。

top

FcgidAuthorizerAuthoritative 指令

描述设置为 'off' 以允许在失败时将授权传递给较低模块
语法FcgidAuthorizerAuthoritative On|Off
默认值FcgidAuthorizerAuthoritative On
上下文目录,.htaccess
覆盖FileInfo
状态外部
模块mod_fcgid

此指令控制当此模块配置了授权器并且它失败了请求时,是否允许其他授权器运行。如果此指令为 On(默认)并且 FastCGI 授权器返回失败状态,则会向客户端返回失败,而不会给其他授权器机会访问资源。如果此指令为 Off,则会调用其他授权器。

top

FcgidBusyScanInterval 指令

描述扫描繁忙超时进程的间隔
语法FcgidBusyScanInterval seconds
默认值FcgidBusyScanInterval 120
上下文服务器配置
状态外部
模块mod_fcgid

模块以该间隔执行 FcgidBusyTimeout 检查。

top

FcgidBusyTimeout 指令

描述在处理请求 FcgidBusyTimeout 后,FastCGI 应用程序将被杀死
语法FcgidBusyTimeout seconds
默认值FcgidBusyTimeout 300
上下文服务器配置,虚拟主机
状态外部
模块mod_fcgid

这是请求处理的最大时间限制。如果 FastCGI 请求在 FcgidBusyTimeout 秒内未完成,它将被终止。由于检查是在 FcgidBusyScanInterval 定义的间隔内执行的,因此请求处理可能会被允许继续更长的时间。

此指令的目的是终止挂起的应用程序。对于处理请求可能需要更长时间的应用程序,可能需要增加默认超时时间。

top

FcgidCmdOptions 指令

描述设置 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 秒后超时。对应于其他选项的指令,例如 FcgidIdleTimeoutFcgidProcessLifeTime,将被忽略此命令;对于 FcgidCmdOptions 上未指定的选项,将使用默认值。

top

FcgidConnectTimeout 指令

描述连接到 FastCGI 服务器的超时时间
语法FcgidConnectTimeout seconds
默认值FcgidConnectTimeout 3
上下文服务器配置,虚拟主机
状态外部
模块mod_fcgid

这是模块在尝试连接到 Windows 上的 FastCGI 应用程序时将等待的最大时间段。(此指令在 Unix 上不受尊重,其中 AF_UNIX 默认值将适用。)

此设置将应用于为该服务器或虚拟主机生成的所以应用程序。使用 FcgidCmdOptions 将此设置应用于单个应用程序。

top

FcgidErrorScanInterval 指令

描述扫描已退出进程的间隔
语法FcgidErrorScanInterval seconds
默认值FcgidErrorScanInterval 3
上下文服务器配置
状态外部
模块mod_fcgid

这是模块将处理挂起的进程终止的间隔。对于任何已超过 FcgidIdleTimeoutFcgidProcessLifeTime 的进程,终止是挂起的。

Unix:mod_fcgid 将使用 SIGTERM 终止此类进程;如果进程在下次扫描期间仍然处于活动状态,则该进程将使用 SIGKILL 终止。因此,此指令控制在强制杀死之前有序进程终止的时间量。

top

FcgidFixPathinfo 指令

描述镜像 PHP cgi.fix_pathinfo 设置
语法FcgidFixPathinfo 1
默认值FcgidFixPathinfo 0
上下文服务器配置
状态外部
模块mod_fcgid

此指令启用特殊的SCRIPT_NAME处理,允许PHP提供额外的路径信息。FcgidFixPathinfo的设置应与php.ini中的cgi.fix_pathinfo设置一致。

top

FcgidIdleScanInterval 指令

描述空闲超时进程扫描间隔
语法FcgidIdleScanInterval
默认值FcgidIdleScanInterval 120
上下文服务器配置
状态外部
模块mod_fcgid

这是模块搜索超过FcgidIdleTimeoutFcgidProcessLifeTime的进程的间隔。

top

FcgidIdleTimeout 指令

描述空闲的FastCGI应用程序将在FcgidIdleTimeout后被杀死
语法FcgidIdleTimeout
默认值FcgidIdleTimeout 300
上下文服务器配置,虚拟主机
状态外部
模块mod_fcgid

如果该类进程数量超过FcgidMinProcessesPerClass,则在此时间段内未处理请求的应用程序进程将被终止。值为0将禁用检查。

此空闲超时检查以配置的FcgidIdleScanInterval频率执行。

此设置将应用于为该服务器或虚拟主机生成的所以应用程序。使用 FcgidCmdOptions 将此设置应用于单个应用程序。

top

FcgidInitialEnv 指令

描述要传递给FastCGI的环境变量名称和可选值。
语法FcgidInitialEnv 名称 [ ]
默认值
上下文服务器配置,虚拟主机
状态外部
模块mod_fcgid

使用FcgidInitialEnv定义要传递给FastCGI应用程序的环境变量。此指令可以多次使用。

此设置将应用于为该服务器或虚拟主机生成的所以应用程序。使用 FcgidCmdOptions 将此设置应用于单个应用程序。

top

FcgidIOTimeout 指令

描述与FastCGI服务器的通信超时
语法FcgidIOTimeout
默认值FcgidIOTimeout 40
上下文服务器配置,虚拟主机
状态外部
模块mod_fcgid

这是模块在尝试从FastCGI应用程序读取或写入时将等待的最大时间段。

注意

FastCGI应用程序必须在此时间段内开始生成响应。根据需要增加此指令以处理响应时间相对较长的应用程序。

此设置将应用于为该服务器或虚拟主机生成的所以应用程序。使用 FcgidCmdOptions 将此设置应用于单个应用程序。

top

FcgidIPCDir 指令

描述AF_UNIX套接字(Unix)或管道(Windows)的目录
语法FcgidIPCDir 路径名
默认值FcgidIPCDir logs/fcgidsock
上下文服务器配置
状态外部
模块mod_fcgid

此模块使用AF_UNIX套接字或命名管道(取决于平台)与FastCGI应用程序通信。此指令指定创建这些套接字或命名管道的目录。

top

FcgidMaxProcesses 指令

描述FastCGI应用程序进程的最大数量
语法FcgidMaxProcesses
默认值FcgidMaxProcesses 1000
上下文服务器配置
状态外部
模块mod_fcgid

此指令设置可以同时活动的FastCGI应用程序进程的最大数量。

top

FcgidMaxProcessesPerClass 指令

描述一类FastCGI应用程序的最大进程数
语法FcgidMaxProcessesPerClass
默认值FcgidMaxProcessesPerClass 100
上下文服务器配置,虚拟主机
状态外部
模块mod_fcgid

此指令设置可以为每个进程类启动的进程的最大数量。

此设置将应用于为该服务器或虚拟主机生成的所以应用程序。使用 FcgidCmdOptions 将此设置应用于单个应用程序。

top

FcgidMaxRequestInMem 指令

描述将保存在内存中的请求的最大大小
语法FcgidMaxRequestInMem 字节
默认值FcgidMaxRequestInMem 65536
上下文服务器配置,虚拟主机
状态外部
模块mod_fcgid

此模块在将请求主体发送到应用程序之前从客户端读取整个请求主体。通常,请求主体将存储在内存中。一旦从客户端读取的请求主体数量超过FcgidMaxRequestInMem字节,剩余的请求主体将存储在临时文件中。

top

FcgidMaxRequestLen 指令

描述最大HTTP请求长度
语法FcgidMaxRequestLen 字节
默认值FcgidMaxRequestLen 131072
上下文服务器配置,虚拟主机
状态外部
模块mod_fcgid

如果请求主体的大小超过此数量,请求将失败,并显示500 Server Error

管理员应根据应用程序要求将此更改为适合其站点的值。

警告

在2.3.6之前,此值默认为1GB。大多数早期版本的使用者应使用此指令设置更合理的限制。

另请参阅

top

FcgidMaxRequestsPerProcess 指令

描述每个FastCGI应用程序处理的最大请求数
语法FcgidMaxRequestsPerProcess
默认值FcgidMaxRequestsPerProcess 0
上下文服务器配置,虚拟主机
状态外部
模块mod_fcgid

FastCGI应用程序进程将在处理指定数量的请求后终止。值为0将禁用检查。

注意

为了方便现有配置的迁移,目前接受值为-1。它与0的处理方式相同。

某些应用程序(尤其是作为FastCGI的PHP)具有自己的机制,可以在处理一定数量的请求后终止。此指令可用于在应用程序处理完其限制后避免向其发送更多请求。

注意

如果设置此值,则可能需要调整FcgidSpawnScoreUpLimit或其他与分数相关的指令,以允许更频繁地创建进程。

此设置将应用于为该服务器或虚拟主机生成的所以应用程序。使用 FcgidCmdOptions 将此设置应用于单个应用程序。

top

FcgidMinProcessesPerClass 指令

描述一类FastCGI应用程序的最小进程数
语法FcgidMinProcessesPerClass
默认值FcgidMinProcessesPerClass 3
上下文服务器配置,虚拟主机
状态外部
模块mod_fcgid

此指令设置在完成请求后将在进程类中保留的最小进程数量。

此设置将应用于为该服务器或虚拟主机生成的所以应用程序。使用 FcgidCmdOptions 将此设置应用于单个应用程序。

top

FcgidOutputBufferSize 指令

描述CGI输出缓冲区大小
语法FcgidOutputBufferSize 字节
默认值FcgidOutputBufferSize 65536
上下文服务器配置,虚拟主机
状态外部
模块mod_fcgid

这是模块在将数据刷新到客户端之前从FastCGI应用程序读取的响应数据的最大数量。

top

FcgidPassHeader 指令

描述将作为环境变量传递给FastCGI的标头名称。
语法FcgidPassHeader 名称
默认值
上下文服务器配置,虚拟主机
状态外部
模块mod_fcgid

此指令指定将作为环境变量传递给FastCGI应用程序的请求标头的名称。环境变量的名称源自此指令上指定的值,如下所述

传统行为是使用此指令上指定的值作为环境变量名称,并将连字符转换为下划线。不执行大小写转换。

从版本2.3.6开始,将创建另一个环境变量。此指令上指定的值将转换为大写,并以HTTP_为前缀,连字符将转换为下划线。

注意

大多数请求标头已经作为环境变量提供给应用程序,并且通常以HTTP_为前缀。(值得注意的例外是Content-typeContent-length,它们没有HTTP_前缀。)因此,此指令仅在有意省略的请求标头(例如AuthorizationProxy-Authorization)时才需要。仅在绝对必要时才传递这些请求标头。

top

FcgidProcessLifeTime 指令

描述最大FastCGI应用程序进程生命周期
语法FcgidProcessLifeTime
默认值FcgidProcessLifeTime 3600
上下文服务器配置,虚拟主机
状态外部
模块mod_fcgid

如果该类进程数量超过FcgidMinProcessesPerClass,则存在时间超过此时间的空闲应用程序进程将被终止。值为0将禁用检查。

此进程生命周期检查以配置的FcgidIdleScanInterval频率执行。

此设置将应用于为该服务器或虚拟主机生成的所以应用程序。使用 FcgidCmdOptions 将此设置应用于单个应用程序。

top

FcgidProcessTableFile 指令

描述共享内存文件路径
语法FcgidProcessTableFile 路径名
默认值FcgidProcessTableFile logs/fcgid_shm
上下文服务器配置
状态外部
模块mod_fcgid

此模块在Unix上使用共享内存来维护httpd进程之间共享的状态。此指令指定共享内存文件的名称。

top

FcgidSpawnScore 指令

描述每次生成都会将此值添加到进程活动分数。
语法FcgidSpawnScore
默认值FcgidSpawnScore 1
上下文服务器配置
状态外部
模块mod_fcgid

此指令的值越低,允许的生成率越高。

有关更多信息,请参阅FcgidSpawnScoreUpLimit指令。

top

FcgidSpawnScoreUpLimit 指令

描述允许生成发生的进程活动分数的最大值
语法FcgidSpawnScoreUpLimit
默认值FcgidSpawnScoreUpLimit 10
上下文服务器配置
状态外部
模块mod_fcgid

为每个FastCGI应用程序维护一个进程活动分数;该分数用于控制生成率,以避免对系统造成过大的负载,特别是对于反复异常退出的应用程序。

FcgidSpawnScore的值将为每个生成的应用程序进程添加到分数中。FcgidTerminationScore的值将为每个终止的应用程序进程添加到分数中。FcgidTimeScore的值将每秒从分数中减去。

当当前分数高于FcgidSpawnScoreUpLimit的值时,将不会生成任何其他应用程序进程;后续请求必须等待现有进程变为空闲,或者等待分数降至限制以下。

如果在正常负载下达到限制,仅仅增加限制可能还不够,因为这只会延迟再次达到限制的时间。降低FcgidSpawnScore和/或FcgidTerminationScore的值,或增加FcgidTimeScore的值,以允许更高的生成率。

top

FcgidTerminationScore 指令

描述每个终止的进程都会将此值添加到进程活动分数。
语法FcgidTerminationScore
默认值FcgidTerminationScore 2
上下文服务器配置
状态外部
模块mod_fcgid

此指令的值越低,允许的生成率越高。负值在某些情况下可能很有用,例如允许替换进程而不会增加分数。

有关更多信息,请参阅FcgidSpawnScoreUpLimit指令。

top

FcgidTimeScore 指令

描述每秒从进程活动分数中减去的数量
语法FcgidTimeScore
默认值FcgidTimeScore 1
上下文服务器配置
状态外部
模块mod_fcgid

此指令的值越高,允许的生成率越高。

有关更多信息,请参阅FcgidSpawnScoreUpLimit指令。

top

FcgidWin32PreventOrphans 指令

描述用于 fcgi 工作进程的作业控制孤儿进程预防。
语法FcgidWin32PreventOrphans On|Off
默认值FcgidWin32PreventOrphans Off
上下文服务器配置
状态外部
模块mod_fcgid

仅在 Windows 上使用作业控制对象来强制关闭 httpd 工作进程终止时由 httpd 工作进程创建的所有 fcgi 进程。以这种方式终止的进程没有机会优雅地清理、完成挂起的磁盘写入或类似的关闭事务,因此此行为是实验性的,默认情况下处于禁用状态。

top

FcgidWrapper 指令

描述CGI 包装器设置
语法FcgidWrapper command [ suffix ] [ virtual ]
默认值
上下文服务器配置、虚拟主机、目录、.htaccess
覆盖FileInfo
状态外部
模块mod_fcgid

给定的命令用于生成 FCGI 服务器进程。如果未使用此指令,则将使用请求 URL 指向的文件。可以使用引号将命令和选项括起来,以包含命令的选项。

可选的 suffix 参数将此 FCGI 服务器的使用限制为所有具有给定确切路径后缀的 URL。后缀需要以 '.' 开头。

virtual 标志表示不会检查请求 URL 是否实际指向现有文件。唯一需要存在的文件是包装器本身。

此指令可以多次使用。在没有后缀的情况下定义的包装器用作默认值,以防没有后缀匹配。

top

FcgidZombieScanInterval 指令

描述僵尸进程扫描间隔
语法FcgidZombieScanInterval seconds
默认值FcgidZombieScanInterval 3
上下文服务器配置
状态外部
模块mod_fcgid

模块以该间隔检查已退出的 FastCGI 应用程序。在此期间,应用程序可能在进程表中作为僵尸进程存在(在 Unix 上)。

可用语言:  en 

top

评论

注意
这不是问答部分。此处放置的评论应指向有关改进文档或服务器的建议,如果我们的版主认为这些评论已实施或被认为无效/主题外,则可能会再次删除这些评论。有关如何管理 Apache HTTP Server 的问题应直接发送到我们的 IRC 频道 #httpd(在 Freenode 上),或发送到我们的 邮件列表