FastCGI 插件提供以下服务器应用程序函数 (Server Application Function, SAF):
以下各节介绍了 FastCGI SAF 的各种参数和“错误原因”字符串:
auth-fastcgi 是修补程序检查函数。此函数用于将请求转发到“授权者”FastCGI 应用程序。如果授权成功,则发送返回码 200。否则,将“授权者”FastCGI 应用程序的响应发送回至用户代理。
可以在 http://www.fastcgi.com/devkit/doc/fcgi-spec.html#S6 中找到有关 FastCGI 角色的更多信息。
以下位置提供了 auth-fastcgi SAF 接受的参数:FastCGI SAF 参数。
以下 obj.conf 代码示例说明了 auth-fastcgi 的用法:
PathCheck fn="auth-fastcgi" app-path="/usr/bin/perl" app-args="/fastcgi/apps/auth/SimpleAuth.pl" bind-path="localhost:3432"。
responder-fastcgi 是服务函数。此函数用于将请求转发到充当“响应者”的 FastCGI 应用程序。“响应者”应用程序的响应将被发送到用户代理。http://www.fastcgi.com/devkit/doc/fcgi-spec.html#S6 中提供了有关 FastCGI 角色的更多信息。
以下位置提供了 responder-fastcgi SAF 接受的参数列表:FastCGI SAF 参数。
以下 obj.conf 代码示例说明了 responder-fastcgi 的用法:
Service fn="responder-fastcgi" app-path="/fastcgi-enabled-php-installation/bin/php" bind-path="localhost:3433" app-env="PHP_FCGI_CHILDREN=8" app-env="PHP_FCGI_MAX_REQUEST=500"。
filter-fastcgi 是服务函数。此函数用于将请求转发到“过滤器”类型的 FastCGI 应用程序。“过滤器”应用程序接收与 HTTP 请求关联的信息,还接收存储在服务器上的文件中的数据。然后,“过滤器”应用程序生成“已过滤”版本的数据流作为响应。该响应将被发送到用户代理。http://www.fastcgi.com/devkit/doc/fcgi-spec.html#S6 中提供了有关 FastCGI 角色的更多信息。
以下位置提供了 filter-fastcgi SAF 接受的参数列表:FastCGI SAF 参数。
以下 obj.conf 代码示例说明了 filter-fastcgi 的用法:
Service fn="filter-fastcgi" app-path="/fastcgi/apps/filter/SimpleFilter" bind-path="localhost:3434" app-env="LD_LIBRARY_PATH=/fastcgi/fcgi-2.4/libfcgi/.libs" min-procs=2
error-fastcgi 是错误函数。error-fastcgi SAF 处理特定于 FastCGI 插件的错误。但是,此函数不处理 HTTP 错误。发生错误时,可以将 FastCGI 插件配置为显示特定的页面或将请求重定向至特定的 URL。
以下位置提供了 error-fastcgi SAF 接受的参数列表:FastCGI SAF 参数。
以下 obj.conf 代码片段说明了 error-fastcgi 的用法:
Error fn="error-fastcgi" error-reason="Invalid Parameters" error-url="http://www.foo.com/errorPage.html"
有关 error-fastcgi 参数的信息,请参见FastCGI SAF 参数。
FastCGI 插件 SAF "auth-fastcgi"、" responder-fastcgi" 和 "filter-fastcgi" 全都接受下列参数,除非另外显式说明:
请注意,参数 chroot、user、group 和 nice 只适用于 UNIX 平台。在 Windows 平台上,这些参数都将被忽略。
app-path-(可选)处理请求的 FastCGI 应用程序路径。该功能依赖于 bind-path 参数的值,如下所示:
如果仅指定了 app-path,插件将创建 FastCGI 应用程序,该应用程序侦听由插件创建的 UNIX 域套接字。然而,仅 UNIX 平台接受此参数。在 Windows 上将记录错误消息。
如果同时指定了 app-path 和 bind-path 参数,插件将启动指定的 FastCGI 应用程序进程并将它们绑定到指定的 bind-path。
如果仅指定了 bind-path,则 FastCGI 应用程序将被认为正在远程运行。因此,插件将不启动 FastCGI 应用程序进程。
如果既未指定 "app-path",也未指定 "bind-path",则插件将记录错误消息。
app-args-(可选)作为参数传递至 FastCGI 应用程序进程的值。允许使用多个 app-args 参数。多个 app-args 参数的格式为 app-args="value" app-args="value" ..。
bind-path-(可选)可以是 Unix 域套接字名称或者是格式 "host:port"。"app-path" 参数的说明解释了 "bind-path" 参数的用法。请注意,Unix 域套接字名称仅适用于 UNIX 平台。在 Windows 平台上,必须将 bind-path 指定为 "host:port"。
min-procs -(可选)一个整数,用来指定要创建的 FastCGI 应用程序进程的最小数目。默认值为 1。
max-procs-(可选)一个整数,用来指定随时可以创建的 FastCGI 应用程序进程的最大数目。该整数值必须等于或大于 min-procs。默认值为 1。
chroot-(可选)用于设置 chroot FastCGI 服务器应用程序进程的根目录。默认值为 Web Server 的根目录。
user-(可选)指定用来运行 FastCGI 应用程序的用户 ID。默认值为 Web Server 的用户 ID。
group-(可选)FastCGI 应用程序将在指定的组下运行。默认值为 Web Server 的组。
nice-(可选)指定 FastCGI 应用程序进程的 nice/priority 值。
listen-queue-(可选)一个整数,用来指定套接字的侦听队列大小。此参数的默认值为 256。
app-env-(可选)作为环境变量传递到 FastCGI 应用程序进程的值对。允许使用多个 "app-env" 参数。多个 app-env 参数的格式为 app-env="name=value" app-env="name=value"....。
reuse-connection-(可选)一个布尔值,用来确定是否重复使用 FastCGI 应用程序连接。False(0、false 或 no)表示在每个请求后将关闭到 FastCGI 应用程序的连接。True(1、true 或 yes)表示对新请求重复使用现有连接。默认值为 false。另请参见 connection-timeout。
connection-timeout-(可选)如果 "reuse-connection" 被设置为 True,则此值指定池化连接的超时值(以秒为单位)。如果连接在指定的时间段内处于空闲状态,则插件将关闭该连接。此参数的默认值为 5 秒。另请参见 reuse-connection。
resp-timeout-(可选)一个整数,用来表示 FastCGI 服务器响应超时(以秒为单位)。如果在指定时间段内 FastCGI 应用程序未响应,将放弃请求。此参数的默认值为 5 分钟。
restart-interval-(可选)一个整数,用来表示两次重新启动 FastCGI 应用程序之间的时间间隔(以分钟为单位)。此参数的默认值为 60 分钟(1 小时)。如果将此参数的值设置为零,则不会强制重新启动 FastCGI 应用程序。
req-retry-(可选)一个整数,用来表示在 FastCGI 应用程序拒绝请求时插件应重新发送该请求的次数。此参数的默认值为零。
error-fastcgi 服务器应用程序函数 (Server Application Function, SAF) 接受以下参数:
error-url-指定在出现故障或错误时显示的页面、URI 或 URL。此参数的值可以为绝对路径、相对于文档根目录的路径、URL 或 URI。
error-reason-(可选)表示 FastCGI 协议错误的字符串。此字符串用来在发生任何插件错误时区分要显示的错误 URL。
本节提供了所有有效“错误原因”字符串及其说明:
“缺少配置参数或配置参数无效”:每当未指定 app-path 和 bind-path 时显示此字符串。
“存根启动错误”:启动 Fastcgisub 进程失败。
“存根连接失败”:无法连接至 Fastcgistub。
“没有权限”:FastCGI 应用程序或 Fastcgisub 没有执行权限。
“存根请求处理错误”:无法将请求发送至存根、存根针对请求发出的响应无效或未响应等。
“设置参数失败”:设置用户、组、Chroot、Nice 等失败。
“用户和/或组无效”:用户或组无效时显示此字符串。
“创建服务器进程失败”:FastCGI 应用程序执行失败或 FastCGI 应用程序无法绑定到指定的地址。
“Fastcgi 协议错误”:FastCGI 应用程序包含具有无效 FastCGI 版本或角色的标头。
“内部错误”:无法打开要发送至过滤器应用程序的文件或任何其他未知错误。