FastCgiAccessChecker 伪指令用于将 FastCGI 应用程序定义为每个目录的访问验证器。Apache 访问阶段先于用户认证,因此允许或(不允许)对所请求资源进行访问的决策基于随同此请求一起提交的 HTTP 报头。当具有访问验证决策的动态组件(如一天中的某一时刻,或域的帐户是否为最新)时,基于认证器的 FastCGI 是最有用的。
如果 FastCGI 应用程序文件名没有相应的静态或外部服务器定义,则它将作为动态的 FastCGI 应用程序启动。如果文件名不是以斜杠 (/) 开头,则假设它相对于 ServerRoot。
FastCgiAccessChecker 在 Directort
或 Location
容器中使用。
<Directory htdocs/protected>
FastCgiAccessChecker fcgi-bin/access-checker
</Directory>
通常情况下,mod_fastcgi 发送几乎所有可用于 CGI/FastCGI 请求处理程序的标准环境变量。所 有由 FastCGI 访问检查器应用程序在成功响应中(状态:200)返回的报头都将作为环境变量发送给子 处理程序(CGI/FastCGI 调用)。所有未成功响应中返回的报头将发送到客户机上。通过使用 "-compat" 选项可以获得 FastCGI 规范所适应的行为。
mod_fastcgi 将环境变量 "FCGI_APACHE_ROLE" 设置为 "ACCESS_CHECKER",以表明执行哪个(Apache 特定的)认证器阶段。
不支持从 FastCGI 认证应用程序中定制失败响应。请查看 ErrorDocument 伪指令,以获得替代办法(FastCGI 应用程序可以为文档提供服务)。
如果 FastCGI 应用程序认证允许访问失败,则明确将 FastCgiAuthenticatorAuthoritative 伪指令设置为 Off,以允许 将访问检查发送给较低级的模块(如在 Configuration 和 modules.c 文件中所定义的)。
缺省情况下,不发送控制,并且在“禁用的”回答中产生一个失败的访问检查。
请慎用禁用的缺省。
FastCgiAuthenticator 伪指令用于将 FastCGI 应用程序定义为每个目录的认证器。 认证器通过将所提供的用户名和口令与已知用户和口令的列表或数据库相匹配,以验证请求者的身份。 当用户数据库在现有的独立程序中被维护或驻留在除 Web 服务器以外的机器上时,基于认证器的 FastCGI 是最有用的。
如果 FastCGI 应用程序文件名没有相应的静态或外部服务器定义,则它将作为动态的 FastCGI 应用程序启动。如果文件名不是以斜杠 (/) 开头,则假设它相对于 ServerRoot。
FastCgiAuthenticator 在 Directory 或 Location 容器中使用,并且必须包含 AuthType 和 AuthName 伪指令。仅支持“基本”用户认证类型。 为了能够正确工作,其必须带有 require 或 FastCgiAuthorizer 伪指令。
<Directory htdocs/protected>
AuthType Basic
AuthName ProtectedRealm
FastCgiAuthenticator fcgi-bin/authenticator
require valid-user
</目录>
通常情况下,mod_fastcgi
发送几乎所有可用于 CGI/FastCGI 请求处理程序的标准环境变量。
所有由 FastCGI 认证应用程序在成功响应中(状态:200)返回的报头将作为环境变量发送给子处理程序(CGI/FastCGI 调用)。
所有未成功响应中返回的报头将发送到客户机上。通过使用 "-compat
" 选项可以获得 FastCGI 规范适应的行为。
Mod_fastcgi
将环境变量 "FCGI_APACHE_ROLE" 设置为 "AUTHENTICATOR_CHECKER",以表明执行哪个(Apache 特定的)认证器阶段。
不支持从 FastCGI 认证应用程序中定制失败响应。请查看 ErrorDocument 伪指令以获得替代办法(FastCGI 应用程序可以为文档提供服务)。
如果 FastCGI 应用程序认证用户失败,则明确将 FastCgiAuthenticatorAuthoritative
伪指令设置为 Off,以将认证发送到较低级的模块(如在 Configuration
和 modules.c
文件中所定义的)。
此伪指令的公共用法是与包含一些(与管理相关的)用户的受保护 AuthUserFile
相关联。
缺省情况下,不发送控制,并且在“认证所需的”回答中产生一个未知用户。请慎用禁用的缺省。
FastCgiAuthorizer
伪指令用于将 FastCGI 应用程序定义为每个目录的认证器。
认证器确认是否允许所认证的用户访问请求的资源。当具有认证决策的动态组件(如一天的某一时刻,或用户是否支付他的帐单)时,基于认证器的 FastCGI 是最有用的。
如果 FastCGI 应用程序文件名没有相应的静态或外部服务器定义,则它将作为动态 FastCGI 应用程序启动。如果文件名不是以斜杠 (/) 开头,则假设它相对于 ServerRoot。
FastCgiAuthorizer
在 Directory
或 Location
容器内使用,并必须包含 AuthType 和 AuthName 伪指令。为了能够正确工作,它必须带有一条认证伪指令(如 FastCgiAuthenticator、AuthUserFile、AuthDBUserFile 或
AuthDBMUserFile)。
<Directory htdocs/protected>
AuthType Basic
AuthName ProtectedRealm
AuthDBMUserFile conf/authentication-database
FastCgiAuthorizer fcgi-bin/authorizer
</Directory>
通常情况下,mod_fastcgi
发送几乎所有可用于 CGI/FastCGI 请求处理程序的标准环境变量。所有由 FastCGI 认证应用程序在成功响应中(状态:200)返回的报头将作
为环境变量发送给子处理程序(CGI/FastCGI 调用)。所有未成功响应中返回的报头将发送到客户机上。通
过使用 "-compat
" 可以获得 FastCGI 规范适应的行为。
Mod_fastcgi
将环境变量 "FCGI_APACHE_ROLE" 设置为 "AUTHORIZER",以表明执行哪个(Apache 特定的)认证器阶段。
不支持从 FastCGI 认证应用程序中定制失败响应。请查看 ErrorDocument 伪指令以获得替代办法(FastCGI 应用程序可以为文档提供服务)。
如果 FastCGI 应用程序认证用户失败,则明确将 FastCgiAuthenticatorAuthoritative
伪指令设置为 Off,以将认证发送到较低级的模块(如在 Configuration
和 modules.c
文件中所定义的)。
此伪指令的公共用法是与包含一些(与管理相关的)用户的受保护 AuthUserFile
相关联。
缺省情况下,不发送控制,并且在“认证所需的”回答中产生一个未知用户。请慎用禁用的缺省。
FastCgiConfig
伪指令为所有动态 FastCGI 应用程序定义缺省参数。该伪指令不以任何方式影响静态
或外部应用程序。
动态应用程序在服务器初始化时不启动,但是在需求时将启动。 如果需求很大,则启动其它应用程序实例。 由于需求的减弱,终止应用程序实例。许多选项控制此进程。
选项可以是以下之一(区分大小写):
appConnTimeout n (0 seconds)
connect()
。如果超时到期,则产生 SERVER_ERROR。对于非 0 值,这是在 select()
中用于写入由非分块的 connect()
所返回文件描述符所需的时间。非分块
的 connect()
在许多平台上都存在问题。另见 -idle-timeout,它会产生相似的结果,但是以更简便的方式表示。idle-timeout n (30 seconds)
error
LogLevel
上)记录事件前,允许 FastCGI 应用程序处于不活动状态的秒数。只有当暂挂 FastCGI 应用程序的连接时,才应用不活动定时器。如果请
求进入应用程序的请求队列,但是应用程序在此期间没有应答(通过写或刷新)时,将异常终止请求。如果与应用程序的通信已完成,但是与客户机的通信还未完成(响应被缓冲)时,将不应用超时。
autoUpdate none
-restart
选项一起使用时,可能会存在未完成的问题(错误)。gainValue n (0.5)
gainValue
) 调节旧值,所以与当前值(由 gainValue
调节)相比较时,该值越小,它的权值就越重。
initial-env name[=value]
none
init-start-delay n (1
second)
killInterval n (300 seconds)
listen-queue-depth n (100)
maxClassProcesses n (10)
maxProcesses n (50)
minProcesses n (5)
multiThreshhold n (50)
singleThreshhold
作为代替。pass-header header none
priority n (0)
setpriority()
)。processSlack n (5 seconds)
maxProcesses - processSlack
,则进程管理器会调用杀死策略。这将在达到 maxProcesses
前,通过杀死一些最不活跃的应用程序实例,以提高高负荷下的性能。restart none
restart-delay n (5 seconds)
singleThreshhold n (0)
startDelay n (3 seconds)
startDelay
必须小于 appConnTimeout
才有效。updateInterval n (300 seconds)
appConnTimeout n (0 seconds)
connect()
。如果超时到期,则产生 SERVER_ERROR。对于非 0 值,这是在 select()
中用于写入由非分块的 connect()
所返回文件描述符所需的时间。非分块
的 connect()
在许多平台上都存在问题。另见 -idle-timeout,它会产生相似的结果,但是以更简便的方式表示。idle-timeout n (30 seconds)
error
LogLevel
上)记录事件前,允许 FastCGI 应用程序处于不活动状态的秒数。只有当暂挂 FastCGI 应用程序的连接时,才应用不活动定时器。如果请
求进入应用程序的请求队列,但是应用程序在此期间没有应答(通过写或刷新)时,将异常终止请求。如果与应用程序的通信已完成,但是与客户机的通信还未完成(响应被缓冲)时,将不应用超时。
flush none
mod_fastcgi
缓冲区数据,以便尽可能快速的释放应用程序。host hostname:port none
-socket
和 -host
选项是互斥的。
Pass-header header none
socket filename none
FastCgiIpcDir
。-socket
和 -port
选项是互斥的。
UNIX:FastCgiIpcDir
伪指令指定了目录,此目录存储(和查找,在外部 FastCGI 应用程序的情况下)用于应用程序和 web 服务器间通信的 UNIX 套接字文件。
如果目录不是以斜杠 (/) 开头,则假设它相对于 ServerRoot。如果目录不存
在,将根据相应的许可权尝试创建它。
不要指定不在本地文件系统中的目录。如果您使用缺省目录(或另一个在 /tmp
内的目录),则假如您的系统定期从 /tmp
删除文件,mod_fastcgi
将中断。
Windows NT:FastCgiIpcDir 伪指令指定了名称,此名称作为应用程序和服务器间通信的已命名 管道的根名。 名称必须以 \\.\pipe\ 管道名形式表示,管道名部分可以包含除反斜杠之外的任何字符。
FastCgiIpcDir
伪指令必须优先于任何 FastCgiServer
或
FastCgiExternalServer
伪指令(它使用 UNIX 套接字)。
该目录对于 web 服务器必须可读、可写和可执行(可查询),否则对于任何人都无法访问它。
FastCgiServer
伪指令定义了文件名作为静态的 FastCGI 应用程序。如果文件名不是以斜
杠 (/) 开头,则假设它相对于 ServerRoot。
缺省情况下,进程管理器将使用下面指定的(圆括号中)缺省配置启动应用程序的一个实例。
如果由于某些原因使静态的应用程序实例死亡,则 mod_fastcgi
将产生另一个实例以替换它,并记录此事件(在警告 LogLevel
中)。
选项可以是以下之一(区分大小写):
appConnTimeoutn (0 seconds)
connect()
。如果超时到期,则产生 SERVER_ERROR。对于非 0 值,这是在 select()
中用于写入由非分块的 connect()
所返回文件描述符所需的时间。非分块
的 connect()
在许多平台上都存在问题。另见 -idle-timeout,它会产生相似的结果,但是以更简便的方式表示。idle-timeout n (30 seconds)
error
LogLevel
上)记录事件前,允许 FastCGI 应用程序处于不活动状态的秒数。只有当暂挂 FastCGI 应用程序的连接时,才应用不活动定时器。如果请
求进入应用程序的请求队列,但是应用程序在此期间没有应答(通过写或刷新)时,将异常终止请求。如果与应用程序的通信已完成,但是与客户机的通信还未完成(响应被缓冲)时,将不应用超时。
initial-env name[=value] none]
none
init-start-delay n(1 second)
Flush none
mod_fastcgi
缓冲区数据,以便尽可能快速的释放应用程序。Listen-queue-depth n (100)
Pass-header header none
processes n (1)
Priority n (0)
setpriority()
)。port n none
-socket
和 -port
选项是互斥的。Restart-delay n (5 seconds)
Socket filename (gen'd)
FastCgiIpcDir
指定的目录中创建套接字。此选项允许其它应用程序(例如 cgi-fcgi
)在同一机器上或通过外部 FastCGI 应用程序定义 (FastCgiExternalServer
) 访问此应用程
序。如果既没有 -socket
,也没有 -port
选项,
则模块将生成 UNIX 域套接字文件名。-socket
和 -port
选项是互斥的。
FastCgiSuexec
伪指令用于启用对 suexec-wrapper 的支持。
FastCgiSuexec
需要在 Apache(用于 CGI)中启用的 suexec。
要与 Apache 使用相同的 suexec-wrapper,将 FastCgiSuexec
设置为 On。要使
用不同的 suexec-wrapper,指定 suexec-wrapper 的文件名。如果文件名不是以斜杠 (/) 开头,
则假设它相对于 ServerRoot。
当启用 FastCgiSuexec
时,静态或外部 FastCGI 应用程序定义的位置很重要。它们
从定义它们的虚拟服务器中的 User
和 Group
伪指令继承了它们的用户和组。
User
和 Group
伪指令应该先于 FastCGI 应用程序定义。注意,这不
会将 FastCGI 应用程序限制到定义它们的虚拟服务器,允许应用程序对任何来自于具有相同用户和组的虚拟服务器的请求提供服务。如果接收到 FastCGI 应用程序的请求,而此请求没有与正确的用户和组相匹配的现有定义,则将使用正确
的用户和组启动应用程序的动态实例。
这将导致与不同的用户/组运行的相同应用程序的多个复本。如果存在问题,从其它虚拟服务器中排除到
此应用程序的导航,或使用相同的用户和组来配置虚拟服务器。
请参阅 Apache 文档以获得关于 suexec 的更多信息(确保您已完全理解安全性蕴含式)。