Apache HTTP Server 2.5 版
語言: 英文
說明 | 提供執行 FastCGI 應用程式的功能 |
---|---|
狀態 | 外部 |
模組識別碼 | fcgid_module |
來源檔案 | mod_fcgid.c |
相容性 | Apache 2.0 以上版本 |
指定給處理常式 fcgid-script
的任何程式都使用 FastCGI 協定處理; mod_fcgid
會啟動足夠的程式執行個體來處理同時存在的請求,而且這些程式會繼續執行以處理更多的即時請求。這樣做比使用預設的 mod_cgi 或 mod_cgid 模組每次請求都啟動程式快得多。然而, mod_fcgid
呼叫的程式會持續消耗資源,因此管理員必須衡量每次請求呼叫特定程式一次對應持續執行充足執行個體所需資源的影響。
呼叫 fcgid 的程式池共用於所有 httpd 工作者。管理員可以使用下列設定指令微調同時執行的程式執行個體數量。
特定可執行檔的處理常式透過以下方式指定,可能是具有 AddHandler 指令定義的副檔名的名稱,或使用 SetHandler 指令的覆寫 (例如,在特定目錄,例如 cgi-bin 中的所有檔案)。
在 ASF 發佈的 mod_fcgid 中已經做出一些變更,可能會影響現有的設定。所有文件都採用指令的新名稱。 (舊名稱仍可使用,但目前已不建議使用。) 請詳細參閱 升級說明。
針對使用 Apache 的 CGI 範本的簡介,請參閱關於 使用 CGI 的動態內容 的一般教學。
ASF 發行的 mod_fcgid 已進行以下變更,若要從 Ryan Pan (Pan Qingfeng) 的舊版本升級,請將這些變更列入考量。
核心指令 ErrorDocument 可讓使用者為特定 HTTP 錯誤程式碼指定自訂錯誤網頁。需要特別注意的是:如果錯誤網頁是由 fastcgi 腳本所產生,mod_fcgid
會將回應傳遞至輸出濾器鏈,略過 Apache 的 ErrorDocuments。相反地,如果錯誤是由 Apache 本身產生(例如,因為資源遺失而產生的 HTTP 404),則會使用 ErrorDocument 設定值。此行為是對 fastcgi 的回應產生邏輯進行最保守的不干涉。mod_proxy
會顯示相同的行為,但它提供 ProxyErrorOverride 以強制使用 ErrorDocuments,而 mod_fcgid
沒有提供此功能。常見的解決方法是指示 fcgi 腳本產生 ErrorDocuments,以完全控制回應內容。
這些範例假設已將 mod_fcgid 和其他必要的模組載入到伺服器中,並且是內建的或透過 LoadModule 指令載入的。
此外,範例設定檔使用存取控制指令提供對應用程式的完整存取,且與 Apache 2.0 和 2.2 合作。這些指令並不適合所有環境,且不適用於 Apache HTTP Server(Subversion 主程式)的開發層級。
第一個範例是一個非常簡單的 Perl FastCGI 應用程式及其設定檔指令。這對於不需要特殊設定檔的 FastCGI 應用程式來說很典型。
#!/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
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>
#!/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 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 快取。
mod_fcgid 有幾種類型的控制項,會影響額外應用程式程序的建立
控制類型 | 指令 |
---|---|
對程序數量的總限制 | FcgidMaxProcesses |
對每個應用程式的程序數量限制 | FcgidMaxProcessesPerClass |
對產生新應用程式程序速率的限制 | FcgidSpawnScoreUpLimit 和其他與分數相關的指令 |
mod_fcgid 有幾種類型的控制項,會影響現有應用程式程序的終止
控制類型 | 指令 |
---|---|
空閒一段時間後終止 | FcgidIdleTimeout |
處理一定數量的要求後終止 | FcgidMaxRequestsPerProcess |
某段生命週期後終止 | FcgidProcessLifetime |
有幾個指令會控制 程序類別 的處理程序。程序類別是已使用相同的執行檔啟動,並共用某些其他特徵的程序組,例如虛擬主機和識別碼。連結至或以其他方式參照相同執行檔的兩個命令共用相同的程序類別。
某些設定或其他概念會因應虛擬主機而有所不同,例如 FcgidInitialEnv
或進程類別,唯在擁有不同的伺服器名稱時才會區分虛擬主機。(有關相關資訊,請參閱 ServerName
文件。)而針對 FcgidInitialEnv
,若兩個虛擬主機擁有相同伺服器名稱,但由 FcgidInitialEnv
定義的環境不同,則特定要求所使用的環境會是因應提出要求且導致 FastCGI 進程啟動的虛擬主機所定義的環境。
每個進程的相關資訊會顯示在 mod_status
伺服器狀態頁面中。
說明 | FastCGI 存取檢查器的完整路徑 |
---|---|
語法 | FcgidAccessChecker command |
預設值 | 無 |
內容 | 目錄、.htaccess |
覆寫 | FileInfo |
狀態 | 外部 |
模組 | mod_fcgid |
存取檢查,或更正式地說,存取控制,是一種用於驗證用戶是否獲准存取資源的程序,會使用某些機制而不是認證和授權。
傳遞給應用程式以進行存取檢查的主要環境變數為
FCGI_APACHE_ROLE
ACCESS_CHECKER
;透過檢查目前的職務,相同的 FastCGI 應用程式可以處理要求處理的許多階段應用程式必須輸出 Status
行,以指出檢查的結果。
在 2.3.6 之前,任何類型的 FastCGI 應用程式(AAA 或處理常式)中只能有一個用於特定的要求 URI。否則,可能會為要求處理的一個或多個階段呼叫錯誤的 FastCGI 應用程式。
說明 | 設定為 'off' 可讓存取控制在失敗時傳遞給較低層級的模組 |
---|---|
語法 | FcgidAccessCheckerAuthoritative 開啟|關閉 |
預設值 | FcgidAccessCheckerAuthoritative 開啟 |
內容 | 目錄、.htaccess |
覆寫 | FileInfo |
狀態 | 外部 |
模組 | mod_fcgid |
此指令控制是否允許其他存取檢查器在這個模組組態存取檢查器且要求失敗時執行。如果此指令為 開啟
(預設值)且 FastCGI 存取檢查器傳回失敗狀態,則會向用戶端傳回失敗訊息,而不會讓其他存取檢查器有機會允許存取。如果此指令為 關閉
,則會呼叫其他存取檢查器。
說明 | FastCGI 驗證器的完整路徑 |
---|---|
語法 | FcgidAuthenticator command |
預設值 | 無 |
內容 | 目錄、.htaccess |
覆寫 | FileInfo |
狀態 | 外部 |
模組 | mod_fcgid |
驗證是一種驗證使用者身分的程序。此指令指定處理特定內容(例如目錄)驗證的 FastCGI 應用程式的完整路徑。
傳遞至驗證應用的主要環境變數為
REMOTE_USER
REMOTE_PASSWD
FCGI_APACHE_ROLE
應用程式必須輸出「狀態」行,以顯示驗證結果。
在 2.3.6 之前,任何類型的 FastCGI 應用程式(AAA 或處理常式)中只能有一個用於特定的要求 URI。否則,可能會為要求處理的一個或多個階段呼叫錯誤的 FastCGI 應用程式。
說明 | 設定為「off」,讓驗證可以在失敗後傳遞至較低階層模組 |
---|---|
語法 | FcgidAuthenticatorAuthoritative _啟用 | 停用_ |
預設值 | FcgidAuthenticatorAuthoritative 啟用 |
內容 | 目錄、.htaccess |
覆寫 | FileInfo |
狀態 | 外部 |
模組 | mod_fcgid |
若模組已設定驗證器,但拒絕請求,此指令控制其他驗證器是否能繼續執行。如果此指令為「啟用」(預設值),且 FastCGI 驗證器傳回失敗狀態,系統會在給予其他驗證器驗證用戶端身分的機會前,傳回失敗狀態給用戶端。如果此指令為「停用」,系統會呼叫其他驗證器。
說明 | FastCGI 授權單位的完整路徑 |
---|---|
語法 | FcgidAuthorizer _指令_ |
預設值 | 無 |
內容 | 目錄、.htaccess |
覆寫 | FileInfo |
狀態 | 外部 |
模組 | mod_fcgid |
授權是驗證使用者能否存取特定資源的程序。此指令指定 FastCGI 應用的完整路徑,該應用程式會處裡特定內容(例如目錄)的授權。
傳遞至授權應用的主要環境變數為
REMOTE_USER
FCGI_APACHE_ROLE
應用程式必須輸出「狀態」行,以顯示授權結果。
在 2.3.6 之前,任何類型的 FastCGI 應用程式(AAA 或處理常式)中只能有一個用於特定的要求 URI。否則,可能會為要求處理的一個或多個階段呼叫錯誤的 FastCGI 應用程式。
說明 | 設定為「off」,讓授權可以在失敗後傳遞至較低階層模組 |
---|---|
語法 | FcgidAuthorizerAuthoritative _啟用 | 停用_ |
預設值 | FcgidAuthorizerAuthoritative 啟用 |
內容 | 目錄、.htaccess |
覆寫 | FileInfo |
狀態 | 外部 |
模組 | mod_fcgid |
若模組已設定授權單位,但拒絕請求,此指令控制其他授權單位是否能繼續執行。如果此指令為「啟用」(預設值),且 FastCGI 授權單位傳回失敗狀態,系統會在給予其他授權單位存取資源的機會前,傳回失敗狀態給用戶端。如果此指令為「停用」,系統會呼叫其他授權單位。
說明 | 忙碌逾時處理程序的掃描間隔 |
---|---|
語法 | FcgidBusyScanInterval _秒數_ |
預設值 | FcgidBusyScanInterval 120 |
內容 | 伺服器設定 |
狀態 | 外部 |
模組 | mod_fcgid |
模組以此間隔執行 FcgidBusyTimeout
檢查。
說明 | 處理完一個請求後會將 FastCGI 應用程式殺掉。 |
---|---|
語法 | FcgidBusyTimeout 秒數 |
預設值 | FcgidBusyTimeout 300 |
內容 | 伺服器設定、虛擬主機 |
狀態 | 外部 |
模組 | mod_fcgid |
這是要求處理的最長時間限制。如果 FastCGI 請求在 FcgidBusyTimeout 秒內未完成,請求就會中斷。因為檢查會以 FcgidBusyScanInterval
定義的間隔執行,所以可能會允許要求處理持續更長時間。
這個指令的目的是終止已暫停的應用程式。對需要花比較長的時間來處理請求的應用程式的預設時間限制可能會需要增加。
說明 | 設定 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 秒後中斷。對應其他選項的指令,例如 FcgidIdleTimeout
或 FcgidProcessLifeTime
,會忽略此指令;針對未在 FcgidCmdOptions
中指定的選項,會使用預設值。
說明 | 與 FastCGI 伺服器連線的逾時 |
---|---|
語法 | FcgidConnectTimeout 秒數 |
預設值 | FcgidConnectTimeout 3 |
內容 | 伺服器設定、虛擬主機 |
狀態 | 外部 |
模組 | mod_fcgid |
這是模組在 Windows 上嘗試連接到 FastCGI 應用程式時的等待的最長時間。(這個指令在 Unix 上不會被採用,在那裡會套用 AF_UNIX 預設值。)
在為該伺服器或虛擬主機啟動的所有應用程式 套用此設定。使用 FcgidCmdOptions
將此設定套用到單一應用程式。
說明 | 已結束程序的掃描區間 |
---|---|
語法 | FcgidErrorScanInterval seconds |
預設值 | FcgidErrorScanInterval 3 |
內容 | 伺服器設定 |
狀態 | 外部 |
模組 | mod_fcgid |
此為模組處理處理程序終止的區間。對於超過 FcgidIdleTimeout
或 FcgidProcessLifeTime
的處理程序。終止為待處理。
Unix:mod_fcgid 將會使用 SIGTERM 終止這些處理程序;如果處理程序仍在下一次的掃描中執行,處理程序將會使用 SIGKILL 終止。因此,此指令會控制有序處理程序終止的時間,否則將會強制終止。
說明 | 反映 PHP cgi.fix_pathinfo 設定 |
---|---|
語法 | FcgidFixPathinfo 1 |
預設值 | FcgidFixPathinfo 0 |
內容 | 伺服器設定 |
狀態 | 外部 |
模組 | mod_fcgid |
此指令會啟用特殊的 SCRIPT_NAME
處理,PHP 可以提供額外的路徑資訊。FcgidFixPathinfo
的設定應反映 php.ini
中的 cgi.fix_pathinfo
設定。
說明 | 閒置超時程序的掃描區間 |
---|---|
語法 | FcgidIdleScanInterval seconds |
預設值 | FcgidIdleScanInterval 120 |
內容 | 伺服器設定 |
狀態 | 外部 |
模組 | mod_fcgid |
此為模組搜尋超過 FcgidIdleTimeout
或 FcgidProcessLifeTime
的處理程序的區間。
說明 | 在 FcgidIdleTimeout 後,閒置的 FastCGI 應用程式將會被終止 |
---|---|
語法 | FcgidIdleTimeout seconds |
預設值 | FcgidIdleTimeout 300 |
內容 | 伺服器設定、虛擬主機 |
狀態 | 外部 |
模組 | mod_fcgid |
在此時間內未處理要求的應用程式程序將會被終止,如果類別的程序數量超過 FcgidMinProcessesPerClass
。0
的值會停用檢查。
此閒置超時檢查會按照設定的 FcgidIdleScanInterval
頻率進行。
在為該伺服器或虛擬主機啟動的所有應用程式 套用此設定。使用 FcgidCmdOptions
將此設定套用到單一應用程式。
說明 | 環境變數名稱和傳遞給 FastCGI 的選擇性值。 |
---|---|
語法 | FcgidInitialEnv name [ value ] |
預設值 | 無 |
內容 | 伺服器設定、虛擬主機 |
狀態 | 外部 |
模組 | mod_fcgid |
使用 FcgidInitialEnv
定義傳遞給 FastCGI 應用程式的環境變數。此指令可以用於多次。
在為該伺服器或虛擬主機啟動的所有應用程式 套用此設定。使用 FcgidCmdOptions
將此設定套用到單一應用程式。
說明 | 傳送到 FastCGI 伺服器的通訊超時 |
---|---|
語法 | FcgidIOTimeout seconds |
預設值 | FcgidIOTimeout 40 |
內容 | 伺服器設定、虛擬主機 |
狀態 | 外部 |
模組 | mod_fcgid |
此為模組在嘗試讀取或寫入 FastCGI 應用程式時的等待時間最長值。
FastCGI 應用程式必須在此時間內開始建立回應。在必要時,請將此指令調整大一點,來處理回應時間相對較長的應用程式。
在為該伺服器或虛擬主機啟動的所有應用程式 套用此設定。使用 FcgidCmdOptions
將此設定套用到單一應用程式。
說明 | 用于 AF_UNIX 套接字(Unix)或管道的目錄(Windows) |
---|---|
語法 | FcgidIPCDir 路徑 |
預設值 | FcgidIPCDir logs/fcgidsock |
內容 | 伺服器設定 |
狀態 | 外部 |
模組 | mod_fcgid |
此模組使用 AF_UNIX 套接字或命名管道(視平臺而定)與 FastCGI 應用程式進行通訊。此指令指定建立這些套接字或命名管道的目錄。
說明 | 最大 FastCGI 應用程式程序數量 |
---|---|
語法 | FcgidMaxProcesses 值 |
預設值 | FcgidMaxProcesses 1000 |
內容 | 伺服器設定 |
狀態 | 外部 |
模組 | mod_fcgid |
此指令設定可同時處於活動狀態的最大 FastCGI 應用程式程序數量。
說明 | 一個類別的 FastCGI 應用的最大程序數 |
---|---|
語法 | FcgidMaxProcessesPerClass 值 |
預設值 | FcgidMaxProcessesPerClass 100 |
內容 | 伺服器設定、虛擬主機 |
狀態 | 外部 |
模組 | mod_fcgid |
此指令設定可為每個程序類別啟動的最大程序數。
在為該伺服器或虛擬主機啟動的所有應用程式 套用此設定。使用 FcgidCmdOptions
將此設定套用到單一應用程式。
說明 | 將保存在記憶體中的請求的最大大小 |
---|---|
語法 | FcgidMaxRequestInMem 位元組 |
預設值 | FcgidMaxRequestInMem 65536 |
內容 | 伺服器設定、虛擬主機 |
狀態 | 外部 |
模組 | mod_fcgid |
此模組在將請求主體傳送給應用程式之前,會先從客戶端讀取完整的請求主體。通常,請求主體會儲存在記憶體中。一旦從客戶端讀取的請求主體數量超過 FcgidMaxRequestInMem
位元組,請求主體的剩餘部分將儲存在暫存檔案中。
說明 | 最大的 HTTP 請求長度 |
---|---|
語法 | FcgidMaxRequestLen 位元組 |
預設值 | FcgidMaxRequestLen 131072 |
內容 | 伺服器設定、虛擬主機 |
狀態 | 外部 |
模組 | mod_fcgid |
如果請求主體大小超過這個數量,請求會失敗,並傳回 500 Server Error
。
管理員應該根據應用程式的需求,將此改為其網站的適當值。
在 2.3.6 之前,預設值為 1GB。大多數早期版本的使用者都應該使用此指令設定一個較合理的限制。
說明 | 每個 FastCGI 應用程式處理的最大請求數 |
---|---|
語法 | FcgidMaxRequestsPerProcess 值 |
預設值 | FcgidMaxRequestsPerProcess 0 |
內容 | 伺服器設定、虛擬主機 |
狀態 | 外部 |
模組 | mod_fcgid |
FastCGI 應用程式程序在處理特定數量的請求後,會終止。0
值會停用檢查。
現在接受 -1
的值,以方便現有設定的遷移。其處理方式與 0
相同。
某些應用程式會自行提供終止機制,特別是當作 FastCGI 的 PHP,這些應用程式能在處理完一定數量的要求之後就終止。此指令可用於避免該應用程式處理完其限制後,繼續傳送額外的要求。
如果此設定使得需要頻繁建立程序,則可能需要調整 FcgidSpawnScoreUpLimit
或其他與分數相關的指令,以允許更頻繁地建立程序。
在為該伺服器或虛擬主機啟動的所有應用程式 套用此設定。使用 FcgidCmdOptions
將此設定套用到單一應用程式。
說明 | FastCGI 應用程式類別的最低程序計數 |
---|---|
語法 | FcgidMinProcessesPerClass 值 |
預設值 | FcgidMinProcessesPerClass 3 |
內容 | 伺服器設定、虛擬主機 |
狀態 | 外部 |
模組 | mod_fcgid |
此指令設定在完成要求後,在程序類別中保留的最低程序數目。
在為該伺服器或虛擬主機啟動的所有應用程式 套用此設定。使用 FcgidCmdOptions
將此設定套用到單一應用程式。
說明 | CGI 輸出緩衝區大小 |
---|---|
語法 | FcgidOutputBufferSize 位元組 |
預設值 | FcgidOutputBufferSize 65536 |
內容 | 伺服器設定、虛擬主機 |
狀態 | 外部 |
模組 | mod_fcgid |
這是在將資料快取到用戶端之前,模組將從 FastCGI 應用程式讀取的最大回應資料量。
說明 | 將傳遞至 FastCGI 做為環境變數的標頭名稱。 |
---|---|
語法 | FcgidPassHeader 名稱 |
預設值 | 無 |
內容 | 伺服器設定、虛擬主機 |
狀態 | 外部 |
模組 | mod_fcgid |
此指令指定要求標頭的名稱,而這些標頭將傳遞給 FastCGI 應用程式做為環境變數。環境變數的名稱會從此指令上指定的數值得出,如下所述。
舊有的行為是將此指令上指定的數值當作環境變數名稱,並將連字號轉換成底線。沒有進行大小寫轉換。
從 2.3.6 版本開始,會建立額外環境變數。此指令上指定的數值會轉換成大寫,加上 HTTP_
前綴,並將連字號轉換成底線。
大部分的請求標頭都已可供應用程式使用,做為環境變數且通常都加上 HTTP_
前綴。(顯著的例外是 Content-type
和 Content-length
,沒有 HTTP_
前綴。)因此,此指令僅需要給予明確略過的請求標頭,例如 Authorization
和 Proxy-Authorization
。只有在絕對需要的情況下,才傳遞這些請求標頭。
說明 | FastCGI 應用程式最大程序生命週期 |
---|---|
語法 | FcgidProcessLifeTime 秒 |
預設值 | FcgidProcessLifeTime 3600 |
內容 | 伺服器設定、虛擬主機 |
狀態 | 外部 |
模組 | mod_fcgid |
如果類別中的程序數量超過 FcgidMinProcessesPerClass
而閒置應用程式程序存在時間超過此時間,則會終止。0
的值會停用檢查。
此程序生命週期檢查會於已設定 FcgidIdleScanInterval
的頻率執行。
在為該伺服器或虛擬主機啟動的所有應用程式 套用此設定。使用 FcgidCmdOptions
將此設定套用到單一應用程式。
說明 | 共用記憶體檔案路徑 |
---|---|
語法 | FcgidProcessTableFile pathname |
預設值 | FcgidProcessTableFile logs/fcgid_shm |
內容 | 伺服器設定 |
狀態 | 外部 |
模組 | mod_fcgid |
此模組在 Unix 上使用共用記憶體維護 httpd 程序之間的共享狀態。此指令指定共用記憶體檔案的名稱。
說明 | 每個產生動作會將此值新增至程序活動計分。 |
---|---|
語法 | FcgidSpawnScore value |
預設值 | FcgidSpawnScore 1 |
內容 | 伺服器設定 |
狀態 | 外部 |
模組 | mod_fcgid |
此指令較低值可增加允許的產生率。
請參閱 FcgidSpawnScoreUpLimit
指令,以取得更多資訊。
說明 | 容許產生發生的程序活動計分上限 |
---|---|
語法 | FcgidSpawnScoreUpLimit value |
預設值 | FcgidSpawnScoreUpLimit 10 |
內容 | 伺服器設定 |
狀態 | 外部 |
模組 | mod_fcgid |
每個 FastCGI 應用程式都會維護一個程序活動計分;計分用於控制產生率,以避免讓系統負載過重,特別是針對重複異常結束的應用程式。
對於每個已產生應用程式程序,FcgidSpawnScore
的值會增加到計分。對於每個已終止應用程式程序,FcgidTerminationScore
的值會增加到計分。對於每個已終止應用程式程序,FcgidTimeScore
的值會從計分中扣除。
當目前的計分高於 FcgidSpawnScoreUpLimit
的值時,不會產生任何額外的應用程式程序;後續要求必須等到現有程序結束或計分降至低於限制值。
如果限制在正常負載下達到,可能不只單純提高限制就夠了,因為這只會延後再次達到限制的時間而已。請降低 FcgidSpawnScore
和/或 FcgidTerminationScore
的值,或者提高 FcgidTimeScore
的值,以允許更高的產生率。
說明 | 每個已終止程序會將此值新增至程序活動計分。 |
---|---|
語法 | FcgidTerminationScore value |
預設值 | FcgidTerminationScore 2 |
內容 | 伺服器設定 |
狀態 | 外部 |
模組 | mod_fcgid |
此指令較低值可增加允許的產生率。負值在某些情況下可能會很有用,例如允許替換程序,而不會增加計分。
請參閱 FcgidSpawnScoreUpLimit
指令,以取得更多資訊。
說明 | 從程序活動計分中每秒扣除的金額 |
---|---|
語法 | FcgidTimeScore value |
預設值 | FcgidTimeScore 1 |
內容 | 伺服器設定 |
狀態 | 外部 |
模組 | mod_fcgid |
此指令較高值可增加允許的產生率。
請參閱 FcgidSpawnScoreUpLimit
指令,以取得更多資訊。
說明 | 工作控制孤兒預防功能,適用於 fcgi 工作人員。 |
---|---|
語法 | FcgidWin32PreventOrphans 開啟|關閉 |
預設值 | FcgidWin32PreventOrphans 關閉 |
內容 | 伺服器設定 |
狀態 | 外部 |
模組 | mod_fcgid |
僅在 Windows 中使用工作控制物件,以強制終止 httpd 工作人員終止時,由該工作人員建立的 fcgi 程序。透過這種方式終止的程序無法正常清理、完成待處理的磁碟寫入作業或類似關閉交易,因此此行為為實驗性質,預設為停用。
說明 | CGI 包裝器設定 |
---|---|
語法 | FcgidWrapper command [ suffix ] [ virtual ] |
預設值 | 無 |
內容 | 伺服器設定、虛擬主機、目錄、.htaccess |
覆寫 | FileInfo |
狀態 | 外部 |
模組 | mod_fcgid |
用於生成 FCGI 伺服器程序的命令。如果未用此指令,則會改用要求 URL 中指定的那個檔案。命令的選項可以使用引號將命令及選項括起來納入。
選擇性的 suffix
引數將此 FCGI 伺服器限定於所有使用明確路徑後綴的 URL。後綴必須以「.
」開頭。
virtual
旗標表示不檢查要求 URL 是否確實指向現有的檔案。唯一的必要檔案是包裝器本身。
可以使用此指令多次。未設定後綴的包裝器會做為一個預設值,在沒有任何後綴符合時使用。
語言: 英文