IBM HTTP Server for WebSphere Application Server, V6.1
             操作系统: AIX, HP-UX, Linux, Solaris, Windows, z/OS

             使目录和搜索结果个性化

FastCGI 伪指令

这些配置参数控制 IBM HTTP Server 中的 FastCGI 功能部件。

FastCGIAccessChecker 伪指令

FastCGIAccessChecker 伪指令将 FastCGI 应用程序定义为每个目录的访问验证器。

语法 FastCGIAccessChecker file name [-compat]
作用域 目录、位置
缺省值 目录
模块 mod_fastcgi
配置文件中的多个实例
文件名

Apache 访问阶段在用户认证前,而请求提交的 HTTP 头确定允许访问所请求资源的决策。当动态组件作为访问验证决策(例如,时间或域帐户的状态)的一部分存在时,使用基于 FastCGI 的授权程序。

如果 FastCGI 应用程序文件名没有相应的静态或外部服务器定义,该应用程序作为动态 FastCGI 应用程序启动。如果文件名不以斜杠(/)开头,那么应用程序假定该文件名与服务器根关联。

在目录或位置容器中使用 FastCgiAccessChecker 伪指令。例如:
<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 的授权程序阶段。

HTTP Server 不支持 FastCGI 授权应用程序的定制故障响应。请参阅 ErrorDocument 伪指令以获取变通方法。FastCGI 应用程序可以为文档提供服务。

FastCGIAccessCheckerAuthoritatve 伪指令

FastCGIAccessCheckerAuthoritatve 伪指令使访问检查可以传递到更低级别的模块。

语法 FastCGIAccessCheckerAuthoritative On | Off
作用域 目录、位置
缺省值 FastCGIAccessCheckerAuthoritative On
模块 mod_fastcgi
配置文件中的多个实例
On 或 off

如果 FastCGI 应用程序无法启用访问,那么如配置和 modules.c 文件中所定义,将 FastCgiAccessCheckerAuthoritative 伪指令明确设置为 Off,使访问检查可以传递到更低级别的模块。

缺省情况下,控制不传递且失败的访问检查将导致禁止的应答。禁用缺省值前仔细考虑含义。

FastCGIAuthenticator 伪指令

FastCGIAuthenticator 伪指令将 FastCGI 应用程序定义为每个目录的鉴别器。

语法 FastCGIAuthenticator file name [-compat]
作用域 目录
缺省值
模块 mod_fastcgi
配置文件中的多个实例
文件名

鉴别器通过将提供的用户名和密码与已知用户名和密码列表或数据库匹配来验证请求者。当在现有独立程序中维护用户数据库,或者它驻留在机器上而不是在 Web 服务器上时,请使用基于 FastCGI 的鉴别器。

如果 FastCGI 应用程序文件名没有相应的静态或外部服务器定义,该应用程序作为动态 FastCGI 应用程序启动。如果文件名不以斜杠(/)开头,那么假定该文件名与服务器根关联。

将目录或位置容器中的 FastCgiAuthenticator 伪指令与 AuthType 和 AuthName 伪指令协同使用。此伪指令仅支持基本用户认证类型。此认证类型需要必需的伪指令或 FastCgiAuthorizer 伪指令正确运行。

/Directory htdocs/protected>
AuthType Basic
AuthName ProtectedRealm
FastCgiAuthenticator fcgi-bin/authenticator
require valid-user
</Directory>

Mod_fastcgi 伪指令几乎将通常可用的所有标准环境变量发送到 CGI 和 FastCGI 请求处理程序。FastCGI 认证应用程序在成功响应中(状态:200)返回的所有头作为环境变量传递到子进程,或 CGI 和 FastCGI 调用。不成功响应中返回的所有头都传递到客户机。使用 -compat 选项获取兼容 FastCGI 规范的行为。

Mod_fastcgi 伪指令将 FCGI_APACHE_ROLE 环境变量设置为 AUTHENTICATOR,表明已执行的特定于 Apache 的授权程序阶段。

此伪指令不支持 FastCGI 授权应用程序的定制故障响应。请参阅 ErrorDocument 伪指令以获取变通方法。FastCGI 应用程序可以为文档提供服务。

FastCGIAuthenticatorAuthoritative 伪指令

如果显式设置为 off 且 FastCGI 应用程序无法认证用户,那么 FastCGIAuthenticatorAuthoritative 伪指令使认证可以传递到配置和 modules.c 文件中定义的更低级别的模块。

语法 FastCGIAuthenticatorAuthoritative On | Off
作用域 目录
缺省值 FastCgiAuthenticatorAuthoritative On
模块 mod_fastcgi
配置文件中的多个实例
On 或 off

将此伪指令与受到很好保护的 AuthUserFile 伪指令(包含一些与管理有关的用户)结合使用。

缺省情况下,控制不传递,而未知用户将导致“必需权限”应答。禁用缺省值前仔细考虑含义。

FastCGIAuthorizer 伪指令

FastCGIAuthorizer 伪指令将 FastCGI 应用程序定义为每个目录的授权程序。

语法 FastCgiAuthorizer file name [-compat]
作用域 目录
缺省值
模块 mod_fastcgi
配置文件中的多个实例
文件名

授权程序验证已认证的用户是否可以访问请求的资源。当动态组件作为部分授权决策(例如,时间或用户票据的流通)存在时,使用基于 FastCGI 的授权程序。

如果 FastCGI 应用程序文件名没有相应的静态或外部服务器定义,该应用程序作为动态 FastCGI 应用程序启动。如果文件名不以斜杠(/)开头,那么假定该文件名与服务器根关联。

在目录或位置容器中使用 FastCgiAuthorizer。包括 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 应用程序可以为文档提供服务。

FastCGIAuthorizerAuthoritative 伪指令

如果 FastCGI 应用程序无法认证用户,那么如配置和 modules.c 文件中所定义,当 FastCGIAuthorizerAuthoritative 伪指令显式设置为 Off 时,它会使认证可以传递到更低级别的模块。

语法 FastCgiAuthorizerAuthoritative file name On | Off
作用域 目录
缺省值 FastCgiAuthorizerAuthoritative file name On
模块 mod_fastcgi
配置文件中的多个实例
On 或 off

将此伪指令与受到很好保护的 AuthUserFile(包含一些与管理有关的用户)结合使用。

缺省情况下,控制不传递,而未知用户将导致“必需权限”应答。禁用缺省值前仔细考虑含义。

FastCGIConfig 伪指令

FastCGIConfig 伪指令定义所有动态 FastCGI 应用程序的缺省参数。

语法 FastCgiConfig option option...

FastCgiConfig 伪指令不影响静态或外部应用程序。

作用域 目录
缺省值
模块 mod_fastcgi
配置文件中的多个实例
动态应用程序根据需求启动。附加的应用程序实例启动以满足大量的需求。由于需求减少,应用程序实例数也相应减少。许多选项管理此过程。
选项可以包含以下某项(不区分大小写):
  • appConnTimeout n(0 秒)。等待到 FastCGI 应用程序的连接完成的秒数或 0,以表明使用分块 connect()。如果超时到期,那么产生 SERVER_ERROR。对于非零值,select() 中使用的此时间数写入由非分块 connect() 返回的文件描述符。非分块 connect() 在许多平台上都很麻烦。也请参阅 -idle-timeout;此选项以更可移植的方式产生类似结果。
  • idle-timeout n(30 秒)。在请求异常终止和事件记录在 error LogLevel 前,所允许的 FastCGI 应用程序不活动秒数。仅当存在与 FastCGI 应用程序的暂挂连接时,该不活动计时器才应用。如果应用程序在此期间不响应队列的请求,那么请求异常终止。如果与应用程序的通信完成,但是与客户机的通信未完成(缓存的响应),那么超时不应用。
  • autoUpdate 无。此选项导致 mod_fastcgi 模块在处理每个请求前检查磁盘上应用程序的时效。对于最近的应用程序,此功能通知进程管理器并停止该应用程序的所有运行中实例。将此类型的功能构建到应用程序中。将此选项与 -restart 协同使用时可能出现问题。
  • gainValue n(0.5)。在计算指数递减的连接中用做指数的 0 和 1 之间的浮点值乘以当前正在运行的动态 FastCGI 应用程序的负载因子。旧的值乘以(1 - gainValue),使值变小,其权重与当前值(旧的值乘以 gainValue)比较则更大。
  • initial-env name[=value] 无。当应用程序的实例衍生时,名称-值对在初始环境中传递。要从 Apache 环境传递变量,请不要提供“=”(如果变量实际上不在环境中,而是定义了却未赋值)。要定义没有值的变量,请提供没有任何值的“=”。此选项是可重复的。
  • init-start-delay n(1 秒)。此应用程序的实例衍生之间的最小秒数。此延迟降低了服务器初始化时对系统的需求。
  • killInterval n(300 秒)。killInterval 确定进程管理器中的动态应用程序实例杀死策略实施的频率。较小的数字导致较严重的策略,而较大的数字导致严重性较低的策略。
  • listen-queue-depth n(100)。listen() 队列的深度,也称为积压,由此应用程序的所有实例共享。更深的侦听队列使服务器可以应付瞬态装入波动而不会拒绝请求;此选项不增加吞吐量。根据应用程序和主机,添加其他应用程序实例会增加吞吐量和提高性能。
  • maxClassProcesses n(10)。允许为任何 FastCGI 应用程序运行的动态 FastCGI 应用程序实例的最大数目。
  • maxProcesses n(50)。允许在任何时间运行的最大动态 FastCGI 应用程序实例数。
  • minProcesses n(5)。进程管理器允许在任何时间运行的动态 FastCGI 应用程序实例(由于没有需求而无须杀死它们)的最小数目。
  • multiThreshhold n(50)。0 到 100 之间的整数,用于确定是否终止 FastCGI 应用程序的任何实例。如果该应用程序当前有多个实例正在运行,那么此属性将帮助您决定是否终止其中某个实例。如果只保留一个实例,将代之以使用 singleThreshhold。
  • pass-header header 无。请求环境中传递的 HTTP 请求头的名称。此选项使头的内容可用于 CGI 环境。
  • priority n(0)。使用 setpriority() 指定给应用程序实例的进程优先级。
  • processSlack n(5 秒)。如果当前正在运行的所有动态 FastCGI 应用程序总数超过了 maxProcesses - processSlack,那么进程管理器将调用杀死的策略。在达到 maxProcesses 值前,此操作通过杀死某些最不活动的应用程序实例来提高较高负载的性能。
  • restart 无。此选项导致有故障时,进程管理器会重新启动动态应用程序,这与静态应用程序类似。
  • Restart-delay n(5 秒)。此应用程序的失败实例重新衍生之间的最小秒数。此延迟阻止中断的应用程序消耗过多系统资源。
  • singleThreshhold n(0)。0 到 100 之间的整数,用于确定是否可以终止 FastCGI 应用程序的最后一个实例。如果应用程序的进程管理器计算的负载因子小于指定的阈值,那么最后一个实例终止。指定接近于 1 的值使可执行文件以空闲方式运行很长时间。如果要考虑到内存或 CPU 时间,那么接近于 100 的值将更适用。值为 0 将阻止应用程序的最后一个实例终止;此值是缺省值。建议不更改此缺省值,特别是当您设置 -appConnTimeout 选项时。
  • startDelay n(3 秒)。当 Web 服务器尝试连接到动态 FastCGI 应用程序时,它等待的秒数。如果时间间隔到期,那么通知进程管理器希望启动应用程序的另一个实例。将 startDelay 值设置为小于 appConnTimeout 值,以使其有效。
  • updateInterval n(300 秒)。updateInterval 决定执行统计分析的频率,以确定动态 FastCGI 应用程序的命运。

FastCGIExternalServer 伪指令

FastCGIExternalServer 将文件名定义为外部 FastCGI 应用程序。

它与 Fastcgiserver 伪指令一样运作,除了 CGI 应用程序正在 Web 服务器外的另一个进程中运行。

语法 FastCgiExternalServer file name -host hostnameport [-appConnTimeout n] FastCgiExternalServer file name -socket file name [-appConnTimeout n]
作用域 服务器配置
缺省值
模块 mod_fastcgi
配置文件中的多个实例
  • appConnTimeout n(0 秒)。等待到 FastCGI 应用程序的连接完成的秒数或 0,以表明使用分块 connect() 方法。如果超时到期,那么产生 SERVER_ERROR。对于非零值,此指示符是 select() 方法中使用的时间量,该时间量写入非分块 connect() 方法返回的文件描述符中。非分块 connect() 方法在许多平台上都很麻烦。也请参阅 -idle-timeout;此选项以更可移植的方式产生类似结果。
  • Idle-timeout n(30 秒)。在请求异常终止和记录事件(在 error LogLevel 中)前,所允许的 FastCGI 应用程序不活动秒数。仅当存在与 FastCGI 应用程序的暂挂连接时,该不活动计时器才应用。如果请求排队到应用程序,但是应用程序在这段时间内不通过写和清仓来响应,那么请求异常终止。如果与应用程序的通信完成,但是与客户机的通信未完成(缓存的响应),那么超时不应用。
  • flush 无。当从应用程序接收到数据时,强制写入客户机。缺省情况下,mod_fastcgi 选项缓存数据以快速释放应用程序。
  • host hostname:port 无。应用程序用于与 Web 服务器通信的主机名,或 IP 地址和 TCP 端口号(1-65535)。-socket 选项和 -host 选项是互斥的。
  • Pass-header header 无。请求环境中传递的 HTTP 请求头的名称。此选项使头内容可用于 CGI 环境。
  • socket file name 无。
    • 在 UNIX 操作系统上。应用程序用于与 Web 服务器通信的 UNIX 域套接字的文件名。该文件名与 FastCgiIpcDir 选项有关。-socket 选项和 -port 选项是互斥的。
    • 在 Windows 操作系统上。应用程序用于与 Web 服务器通信的管道名。该名称与 FastCgiIpcDir 选项有关。-socket 选项和 -port 选项是互斥的。

FastCGIIpcDir 伪指令

FastCGIIpcDir 伪指令将目录指定为存储 UNIX 套接字文件的位置,这些 UNIX 套接字文件用于在应用程序和 Web 服务器之间通信。

语法
  • 在 UNIX 平台上 - FastCgiIpcDir 目录
  • 在 Windows 操作系统上 - FastCgiIpcDir 名称
作用域 服务器配置
缺省值
模块 mod_fastcgi
配置文件中的多个实例
目录或名称

[AIX] [HP-UX] [Linux] [Solaris] FastCgiIpcDir 伪指令将目录指定为存储和查找外部 FastCGI 应用程序情况下的 UNIX 套接字文件的位置,这些 UNIX 套接字文件用于在应用程序和 Web 服务器之间通信。如果该目录不以斜杠(/)开头,那么假定该目录与服务器根关联。如果该目录不存在,那么此函数尝试创建具有适当许可权的伪指令。在本地文件系统上指定目录。如果使用缺省目录或 /tmp 中的另一个目录,那么如果系统周期性地从 /tmp 目录删除文件,mod_fastcgi 将中断。

[Windows] FastCgiIpcDir 伪指令将 name 指定为命名管道的根,这些命名管道用于在应用程序和 Web 服务器之间通信。以格式 >\\.\pipe\pipename. 定义名称。管道名语法可以包含除反斜杠外的任何字符。

FastCgiIpcDir 伪指令必须在任何 FastCgiServerFastCgiExternalServer 伪指令前,它们利用 UNIX 套接字。确保 Web 服务器可读、可写和可执行的目录。没人可以访问此目录。

FastCGIServer 伪指令

FastCGIServer 伪指令将文件名定义为静态 FastCGI 应用程序。

进程管理器启动应用程序的某个实例,缺省配置在以下括号中指定。如果静态应用程序实例因为任何原因死了,那么 mod_fastcgi 模块将衍生另一个实例来替换,并将记录处于警告日志级别的事件。

语法 FastCgiServer file name [options]
作用域 服务器配置
缺省值
模块 mod_fastcgi
配置文件中的多个实例
目录或名称
您可以使用以下某个不区分大小写的选项:
  • appConnTimeout n(0 秒)。等待到 FastCGI 应用程序的连接完成的秒数或 0,以表明使用分块 connect()。如果超时到期,那么产生 SERVER_ERROR。对于非零值,此指示符是 select() 中使用的时间量,该时间量写入非分块 connect() 返回的文件描述符中。非分块 connect() 证明在许多平台上都很麻烦。请参阅 -idle-timeout 选项;它产生类似结果,但使用的是更可移植的方式。
  • Idle-timeout n(30 秒)。在请求异常终止和事件记录在 error LogLevel 前,所允许的 FastCGI 应用程序不活动秒数。仅当存在与 FastCGI 应用程序的暂挂连接时,该不活动计时器才应用。如果应用程序在此期间不响应队列的请求,那么请求异常终止。如果与应用程序的通信完成,但是与客户机的通信未完成(缓存的响应),那么超时不应用。
  • initial-env name [=value] none]none。名称-值对在 FastCGI 应用程序初始环境中传递。要从 Apache 环境传递变量,请不要提供“=”(变量实际上不在环境中,而是定义了却未赋值)。要定义没有值的变量,请提供没有值的“=”。您可以重复此选项。
  • init-start-delay n(1 秒)。此应用程序的实例衍生之间的最小秒数。此延迟降低了服务器初始化时对系统的需求。
  • Flush 无。当应用程序的数据到达时,强制写入客户机。缺省情况下,mod_fastcgi 缓存数据以快速释放应用程序。
  • Listen-queue-depth n(100)。listen() 队列的深度,也称为积压,由此应用程序的所有实例共享。更深的侦听队列使服务器可以应付瞬态装入波动而不会拒绝请求;此选项不增加吞吐量。根据应用程序和主机,添加其他应用程序实例会增加吞吐量和提高性能。
  • Pass-header header 无。请求环境中传递的 HTTP 请求头的名称。此选项使头的内容可用于 CGI 环境。
  • processes n(1)。在服务器初始化时衍生的应用程序实例数。
  • Priority n(0)。使用 setpriority() 指定给应用程序实例的进程优先级。
  • port n 无。应用程序用于与 Web 服务器通信的 TCP 端口号(1-65535)。此选项使应用程序可以从网络中的其他机器访问。-socket 选项和 -port 选项是互斥的。
  • Restart-delay n(5 秒)。此应用程序的失败实例重新衍生之间的最小秒数。此延迟阻止中断的应用程序使用过多系统资源。
  • 套接字文件名
    • 在 UNIX 平台上:应用程序用于与 Web 服务器通信的 UNIX 域套接字的文件名。模块在 FastCgiIpcDir 指定的目录中创建套接字。此选项使同一机器上的其他应用程序可以访问该应用程序(例如 cgi-fcgi),或者通过外部 FastCGI 应用程序定义 FastCgiExternalServer 使其他应用程序可以访问该应用程序。如果既未提供 -socket 选项,也未提供 -port 选项,那么模块将生成一个 UNIX 域套接字文件名。-socket 选项和 -port 选项是互斥的。
    • 在 Windows 操作系统上:应用程序用于与 Web 服务器通信的管道名。模块创建 FastCgiIpcDir 伪指令指定的命名管道根之外命名管道。此选项使同一机器上的其他应用程序可以访问该应用程序(如 cgi-fcgi),或者通过外部 FastCGI 应用程序定义 FastCgiExternalServer 使其他应用程序可以访问该应用程序。如果既未提供 -socket 选项,也未提供 -port 选项,那么模块将为命名管道生成一个名称。-socket 选项和 -port 选项是互斥的。如果文件名不以斜杠(/)开头,那么假定此文件名与服务器根关联。

FastCGIsuEXEC 伪指令 [AIX Solaris HP-UX Linux Windows]

FastCGIsuEXEC 伪指令支持 suEXEC-wrapper。

语法 FastCgiSuexec On | Off file name
作用域 服务器配置
缺省值 FastCgiSuexec Off
模块 mod_fastcgi
配置文件中的多个实例
FastCgiSuexec 伪指令要求在 Apache 中为 CGI 启用 suEXEC。要使用 Apache 使用的同一 suEXEC-wrapper,将 FastCgiSuexec 设置为 On。要使用另一个 suEXEC-wrapper,请指定 suEXEC-wrapper 的文件名。如果文件名不以斜杠(/)开头,那么假定该文件名与服务器根关联。

启用 FastCgiSuexec 伪指令时,静态或外部 FastCGI 应用程序定义的位置变得很重要。这些区别从定义它们的虚拟服务器中的用户和组伪指令继承其用户和组。用户和组伪指令应该在 FastCGI 应用程序定义之前。此功能不会将 FastCGI 应用程序限制在定义它的虚拟服务器中。该应用程序可以对任何虚拟服务器(具有相同用户和组)的请求提供服务。如果接收了 FastCGI 应用程序的请求而未用正确的用户和组运行现有匹配定义,那么用正确的用户和组启动该应用程序的动态实例。此操作会导致用不同用户和组运行同一应用程序的多个副本。如果这会导致问题,那么排除从其他虚拟服务器到应用程序的导航,或者用相同的用户和组来配置虚拟服务器。

请参阅 Apache 文档,以了解有关 suEXEC 和安全含义的更多信息。




相关任务
对 FastCGI 应用程序启用 IBM HTTP Server
参考主题    

使用条款 | 反馈

最近更新日期: Mar 31, 2008 3:11:26 AM EDT
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.ihs.doc/info/ihs/ihs/rihs_fcgidirs.html