<-
Apache > HTTP Server > 文件 > 2.5 版 > 模組

Apache 模組 mod_fcgid

語言:  英文 

說明提供執行 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 中已經做出一些變更,可能會影響現有的設定。所有文件都採用指令的新名稱。 (舊名稱仍可使用,但目前已不建議使用。) 請詳細參閱 升級說明

針對使用 Apache 的 CGI 範本的簡介,請參閱關於 使用 CGI 的動態內容 的一般教學。

mod_fcgid 需要在 httpd 設定中將 mod_unixd 載入在自己之前。

主題

指令

更多資訊

top

升級說明

ASF 發行的 mod_fcgid 已進行以下變更,若要從 Ryan Pan (Pan Qingfeng) 的舊版本升級,請將這些變更列入考量。

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 Internal Server Error 傳回客戶端。可以將 PHP_FCGI_MAX_REQUESTS 設定為 0 來停用 PHP 行為,但這可能會導致問題,如果 PHP 應用程式會造成資源外洩的話。或者,可以將 PHP_FCGI_MAX_REQUESTS 設定為遠高於預設值,以減少這個問題發生的頻率。可以將 FcgidMaxRequestsPerProcess 設定為小於或等於 PHP_FCGI_MAX_REQUESTS,以解決問題。

應該永遠將 PHP 子處理程序管理 (PHP_FCGI_CHILDREN) 與 mod_fcgid 停用,它一次只會將一個要求路由到它已衍生的應用程式程序;因此,PHP 建立的任何子程序都無法有效使用。(此外,PHP 子程序可能無法適當終止。)PHP 子程序管理會在預設情況下停用,並會設定環境變數 PHP_FCGI_CHILDREN=0

PHP 的 popular 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 之前,任何類型的 FastCGI 應用程式(AAA 或處理常式)中只能有一個用於特定的要求 URI。否則,可能會為要求處理的一個或多個階段呼叫錯誤的 FastCGI 應用程式。

top

FcgidAccessCheckerAuthoritative 指令

說明設定為 'off' 可讓存取控制在失敗時傳遞給較低層級的模組
語法FcgidAccessCheckerAuthoritative 開啟|關閉
預設值FcgidAccessCheckerAuthoritative 開啟
內容目錄、.htaccess
覆寫FileInfo
狀態外部
模組mod_fcgid

此指令控制是否允許其他存取檢查器在這個模組組態存取檢查器且要求失敗時執行。如果此指令為 開啟(預設值)且 FastCGI 存取檢查器傳回失敗狀態,則會向用戶端傳回失敗訊息,而不會讓其他存取檢查器有機會允許存取。如果此指令為 關閉,則會呼叫其他存取檢查器。

top

FcgidAuthenticator 指令

說明FastCGI 驗證器的完整路徑
語法FcgidAuthenticator command
預設值
內容目錄、.htaccess
覆寫FileInfo
狀態外部
模組mod_fcgid

驗證是一種驗證使用者身分的程序。此指令指定處理特定內容(例如目錄)驗證的 FastCGI 應用程式的完整路徑。

傳遞至驗證應用的主要環境變數為

REMOTE_USER
設定為用戶端的使用者 ID
REMOTE_PASSWD
設定為用戶端提供的純文字密碼
FCGI_APACHE_ROLE
設定為「AUTHENTICATOR」;透過檢查目前的職位,相同的 FastCGI 應用程式可以處理多個階段的請求處理程序

應用程式必須輸出「狀態」行,以顯示驗證結果。

警告

在 2.3.6 之前,任何類型的 FastCGI 應用程式(AAA 或處理常式)中只能有一個用於特定的要求 URI。否則,可能會為要求處理的一個或多個階段呼叫錯誤的 FastCGI 應用程式。

top

FcgidAuthenticatorAuthoritative 指令

說明設定為「off」,讓驗證可以在失敗後傳遞至較低階層模組
語法FcgidAuthenticatorAuthoritative _啟用 | 停用_
預設值FcgidAuthenticatorAuthoritative 啟用
內容目錄、.htaccess
覆寫FileInfo
狀態外部
模組mod_fcgid

若模組已設定驗證器,但拒絕請求,此指令控制其他驗證器是否能繼續執行。如果此指令為「啟用」(預設值),且 FastCGI 驗證器傳回失敗狀態,系統會在給予其他驗證器驗證用戶端身分的機會前,傳回失敗狀態給用戶端。如果此指令為「停用」,系統會呼叫其他驗證器。

top

FcgidAuthorizer 指令

說明FastCGI 授權單位的完整路徑
語法FcgidAuthorizer _指令_
預設值
內容目錄、.htaccess
覆寫FileInfo
狀態外部
模組mod_fcgid

授權是驗證使用者能否存取特定資源的程序。此指令指定 FastCGI 應用的完整路徑,該應用程式會處裡特定內容(例如目錄)的授權。

傳遞至授權應用的主要環境變數為

REMOTE_USER
設定為已驗證的用戶端使用者 ID
FCGI_APACHE_ROLE
設定為「AUTHORIZER」;透過檢查目前的職位,相同的 FastCGI 應用程式可以處理多個階段的請求處理程序

應用程式必須輸出「狀態」行,以顯示授權結果。

警告

在 2.3.6 之前,任何類型的 FastCGI 應用程式(AAA 或處理常式)中只能有一個用於特定的要求 URI。否則,可能會為要求處理的一個或多個階段呼叫錯誤的 FastCGI 應用程式。

top

FcgidAuthorizerAuthoritative 指令

說明設定為「off」,讓授權可以在失敗後傳遞至較低階層模組
語法FcgidAuthorizerAuthoritative _啟用 | 停用_
預設值FcgidAuthorizerAuthoritative 啟用
內容目錄、.htaccess
覆寫FileInfo
狀態外部
模組mod_fcgid

若模組已設定授權單位,但拒絕請求,此指令控制其他授權單位是否能繼續執行。如果此指令為「啟用」(預設值),且 FastCGI 授權單位傳回失敗狀態,系統會在給予其他授權單位存取資源的機會前,傳回失敗狀態給用戶端。如果此指令為「停用」,系統會呼叫其他授權單位。

top

FcgidBusyScanInterval 指令

說明忙碌逾時處理程序的掃描間隔
語法FcgidBusyScanInterval _秒數_
預設值FcgidBusyScanInterval 120
內容伺服器設定
狀態外部
模組mod_fcgid

模組以此間隔執行 FcgidBusyTimeout 檢查。

top

FcgidBusyTimeout 指令

說明處理完一個請求後會將 FastCGI 應用程式殺掉。
語法FcgidBusyTimeout 秒數
預設值FcgidBusyTimeout 300
內容伺服器設定、虛擬主機
狀態外部
模組mod_fcgid

這是要求處理的最長時間限制。如果 FastCGI 請求在 FcgidBusyTimeout 秒內未完成,請求就會中斷。因為檢查會以 FcgidBusyScanInterval 定義的間隔執行,所以可能會允許要求處理持續更長時間。

這個指令的目的是終止已暫停的應用程式。對需要花比較長的時間來處理請求的應用程式的預設時間限制可能會需要增加。

top

FcgidCmdOptions 指令

說明設定 FastCGI 指令的處理選項
語法FcgidCmdOptions 指令 選項 [選項] ...
內容伺服器設定、虛擬主機
狀態外部
模組mod_fcgid

此指令允許針對由 mod_fcgid 產生的特定指令指定處理選項。指令的每個選項對應另一個指令,該指令通常適用於在特定內容內啟動的所有指令。如果此指令未指定特定選項,預設值會使用。

下表提供選項和對應指令的清單

選項名稱和語法對應指令
ConnectTimeout 秒數 FcgidConnectTimeout
IdleTimeout 秒數 FcgidIdleTimeout
InitialEnv 名稱[=值] FcgidInitialEnv
IOTimeout 秒數 FcgidIOTimeout
MaxProcesses FcgidMaxProcessesPerClass
MaxProcessLifeTime 秒數 FcgidProcessLifeTime
MaxRequestsPerProcess FcgidMaxRequestsPerProcess
MinProcesses 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 秒數
預設值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 seconds
預設值FcgidIdleScanInterval 120
內容伺服器設定
狀態外部
模組mod_fcgid

此為模組搜尋超過 FcgidIdleTimeoutFcgidProcessLifeTime 的處理程序的區間。

top

FcgidIdleTimeout 指令

說明在 FcgidIdleTimeout 後,閒置的 FastCGI 應用程式將會被終止
語法FcgidIdleTimeout seconds
預設值FcgidIdleTimeout 300
內容伺服器設定、虛擬主機
狀態外部
模組mod_fcgid

在此時間內未處理要求的應用程式程序將會被終止,如果類別的程序數量超過 FcgidMinProcessesPerClass0 的值會停用檢查。

此閒置超時檢查會按照設定的 FcgidIdleScanInterval 頻率進行。

在為該伺服器或虛擬主機啟動的所有應用程式 套用此設定。使用 FcgidCmdOptions 將此設定套用到單一應用程式。

top

FcgidInitialEnv 指令

說明環境變數名稱和傳遞給 FastCGI 的選擇性值。
語法FcgidInitialEnv name [ value ]
預設值
內容伺服器設定、虛擬主機
狀態外部
模組mod_fcgid

使用 FcgidInitialEnv 定義傳遞給 FastCGI 應用程式的環境變數。此指令可以用於多次。

在為該伺服器或虛擬主機啟動的所有應用程式 套用此設定。使用 FcgidCmdOptions 將此設定套用到單一應用程式。

top

FcgidIOTimeout 指令

說明傳送到 FastCGI 伺服器的通訊超時
語法FcgidIOTimeout seconds
預設值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 pathname
預設值FcgidProcessTableFile logs/fcgid_shm
內容伺服器設定
狀態外部
模組mod_fcgid

此模組在 Unix 上使用共用記憶體維護 httpd 程序之間的共享狀態。此指令指定共用記憶體檔案的名稱。

top

FcgidSpawnScore 指令

說明每個產生動作會將此值新增至程序活動計分。
語法FcgidSpawnScore value
預設值FcgidSpawnScore 1
內容伺服器設定
狀態外部
模組mod_fcgid

此指令較低值可增加允許的產生率。

請參閱 FcgidSpawnScoreUpLimit 指令,以取得更多資訊。

top

FcgidSpawnScoreUpLimit 指令

說明容許產生發生的程序活動計分上限
語法FcgidSpawnScoreUpLimit value
預設值FcgidSpawnScoreUpLimit 10
內容伺服器設定
狀態外部
模組mod_fcgid

每個 FastCGI 應用程式都會維護一個程序活動計分;計分用於控制產生率,以避免讓系統負載過重,特別是針對重複異常結束的應用程式。

對於每個已產生應用程式程序,FcgidSpawnScore 的值會增加到計分。對於每個已終止應用程式程序,FcgidTerminationScore 的值會增加到計分。對於每個已終止應用程式程序,FcgidTimeScore 的值會從計分中扣除。

當目前的計分高於 FcgidSpawnScoreUpLimit 的值時,不會產生任何額外的應用程式程序;後續要求必須等到現有程序結束或計分降至低於限制值。

如果限制在正常負載下達到,可能不只單純提高限制就夠了,因為這只會延後再次達到限制的時間而已。請降低 FcgidSpawnScore 和/或 FcgidTerminationScore 的值,或者提高 FcgidTimeScore 的值,以允許更高的產生率。

top

FcgidTerminationScore 指令

說明每個已終止程序會將此值新增至程序活動計分。
語法FcgidTerminationScore value
預設值FcgidTerminationScore 2
內容伺服器設定
狀態外部
模組mod_fcgid

此指令較低值可增加允許的產生率。負值在某些情況下可能會很有用,例如允許替換程序,而不會增加計分。

請參閱 FcgidSpawnScoreUpLimit 指令,以取得更多資訊。

top

FcgidTimeScore 指令

說明從程序活動計分中每秒扣除的金額
語法FcgidTimeScore value
預設值FcgidTimeScore 1
內容伺服器設定
狀態外部
模組mod_fcgid

此指令較高值可增加允許的產生率。

請參閱 FcgidSpawnScoreUpLimit 指令,以取得更多資訊。

top

FcgidWin32PreventOrphans 指令

說明工作控制孤兒預防功能,適用於 fcgi 工作人員。
語法FcgidWin32PreventOrphans 開啟|關閉
預設值FcgidWin32PreventOrphans 關閉
內容伺服器設定
狀態外部
模組mod_fcgid

僅在 Windows 中使用工作控制物件,以強制終止 httpd 工作人員終止時,由該工作人員建立的 fcgi 程序。透過這種方式終止的程序無法正常清理、完成待處理的磁碟寫入作業或類似關閉交易,因此此行為為實驗性質,預設為停用。

top

FcgidWrapper 指令

說明CGI 包裝器設定
語法FcgidWrapper command [ suffix ] [ virtual ]
預設值
內容伺服器設定、虛擬主機、目錄、.htaccess
覆寫FileInfo
狀態外部
模組mod_fcgid

用於生成 FCGI 伺服器程序的命令。如果未用此指令,則會改用要求 URL 中指定的那個檔案。命令的選項可以使用引號將命令及選項括起來納入。

選擇性的 suffix 引數將此 FCGI 伺服器限定於所有使用明確路徑後綴的 URL。後綴必須以「.」開頭。

virtual 旗標表示不檢查要求 URL 是否確實指向現有的檔案。唯一的必要檔案是包裝器本身。

可以使用此指令多次。未設定後綴的包裝器會做為一個預設值,在沒有任何後綴符合時使用。

top

FcgidZombieScanInterval 指令

說明僵屍程序掃描間隔
語法FcgidZombieScanInterval 秒數
預設值FcgidZombieScanInterval 3
內容伺服器設定
狀態外部
模組mod_fcgid

本模組會在這個時間間隔檢查已經退出的 FastCGI 應用程式。在此時間期間,應用程式可能會在程序表中以僵屍的方式存在 (在 Unix 中)。

語言:  英文 

top

留言

通知
這裡不是問答部分。在此留言應針對改善文件或伺服器的建議,若建議已被實作或被認為無效/離題,我們的管理員可能會將其移除。關於如何管理 Apache HTTP 伺服器的問題,應導向我們的 IRC 頻道 #httpd(在 Freenode)或寄至我們的 電子郵件討論區