|
|
||
使用快速通用閘道介面指引這一節提供快速通用閘道介面 (FastCGI) 指引的相關資訊。
這項資訊含有特定的指引語法、範圍、預設值和相關附註
FastCgiAccessChecker
Apache Access 階段發生於進行使用者鑑別之前,隨要求送出的 HTTP 標題決定了是否允許存取所要求的資源的決策。 當存取驗證決策中有時間或網域帳戶狀態之類的動態元件時,請使用 FastCGI 型的授權程式。 如果 FastCGI 應用程式檔案名稱中沒有對應的靜態或外部伺服器定義,就會將應用程式當作動態 FastCGI 應用程式來啟動。 如果檔案名稱開頭不是斜線 (/),應用程式會假設檔案名稱是相對於 ServerRoot。 請在 Directory 或 Location 儲存器內使用 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 伺服器不支援 FastCGI 授權應用程式傳回的自訂失敗回應。 請參閱 ErrorDocument 指引,以取得解決方案。 FastCGI 應用程式可提供這份文件。 FastCgiAccessCheckerAuthoritative
將 FastCgiAccessCheckerAuthoritative 指引明確設為 Off,可在 FastCGI 應用程式無法啟用存取功能時, 讓存取檢查能夠依照 Configuration 和 modules.c 檔所定義傳入較低層次的模組。 依預設,控制權不會傳遞下去,失敗的存取檢查會產生禁止的回覆。
在停用預設值之前,請仔細考慮可能的影響。
FastCgiAuthenticator
鑑別程式會比對所提供的使用者名稱和密碼與清單或資料庫中已知的使用者名稱和密碼來驗證要求者。 如果使用者資料庫是在現有獨立程式內維護的,或位於 Web 伺服器以外的機器中,請利用以 FastCGI 為基礎的鑑別程式。 如果 FastCGI 應用程式檔案名稱中沒有對應的靜態或外部伺服器定義,就會將應用程式當作動態 FastCGI 應用程式來啟動。 如果檔案名稱開頭不是斜線 (/),就會假設這個檔案名稱是相對於 ServerRoot。 請在 Directory 或 Location 儲存器中,搭配 AuthType 和 AuthName 指引來使用 FastCgiAuthenticator 指引。 這個指引只支援 Basic 使用者鑑別類型。 這個鑑別類型需要有 Require 或 FastCgiAuthorizer 指引,才能正確運作。
<Directory htdocs/protected> AuthType Basic AuthName ProtectedRealm FastCgiAuthenticator fcgi-bin/authenticator require valid-user </Directory> Mod_fastcgi 指引會傳送 CGI 和 FastCGI 要求處理程式通常能夠使用的絕大部分標準環境變數。 FastCGI 鑑別應用程式在成功回應(狀態:200)中傳回的所有標題都會作為環境變數而傳送給子程序(或 CGIand FastCGI 呼叫)。 在失敗回應中傳回的所有標頭都會傳送給從屬站。 請利用 -compat 選項來取得 FastCGI 規格相容行為。 Mod_fastcgi 指引會將 FCGI_APACHE_ROLE 環境變數設定為 AUTHENTICATOR 來指出所執行的 Apache 專用授權程式階段。 這個指引不支援 FastCGI 授權應用程式傳回的自訂失敗回應。 請參閱 ErrorDocument 指引,以取得解決方案。 FastCGI 應用程式可提供這份文件。 FastCgiAuthenticatorAuthoritative
請搭配含有少數與管理相關的使用者且受到妥善保護的 AuthUserFile 指引來使用這個指引。 依預設,控制權不會傳遞下去,不明的使用者會產生「需要授權」的回覆。 在停用預設值之前,請仔細考慮可能的影響。 FastCgiAuthorizer
授權程式會驗證鑑別過的使用者能不能存取要求的資源。 當授權決策中有時間或使用者帳單貨幣之類的動態元件時,請使用 FastCGI 型的授權程式。 如果 FastCGI 應用程式檔案名稱中沒有對應的靜態或外部伺服器定義,就會將應用程式當作動態 FastCGI 應用程式來啟動。 如果檔案名稱開頭不是斜線 (/),就會假設這個檔案名稱是相對於 ServerRoot。 請在 Directory 或 Location 儲存器內使用 FastCgiAuthorizer 指引。 請併入 AuthType 和 AuthName 指引。 此指引必須搭配一個 authentication 指引,如 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
請搭配含有少數與管理相關的使用者且受到妥善保護的 AuthUserFile 來使用這個指引。 依預設,控制權不會傳遞下去,不明的使用者會產生「需要授權」的回覆。 在停用預設值之前,請仔細考慮可能的影響。 FastCgiConfig
FastCgiConfig 指引不會影響靜態或外部應用程式。 FastCgiExternalServer
|
|||
|
|
||
|
|
||
![]() ![]()
|
FastCgiIpcDir
|
|
UNIX 平台:FastCgiIpcDir 指引指定 directory 作為在使用外部 FastCGI 應用程式時, 用來儲存和尋找應用程式和 Web 伺服器通信所用的 UNIX Socket 檔案的位置。 若目錄的開頭不是斜線 (/),則會假設目錄是和 ServerRoot 相對。 如果目錄不存在,函數會嘗試以適當的許可權來建立目錄。 請指定本端檔案系統中的目錄。 如果使用預設目錄(或 /tmp 內的另一個目錄),且系統會定期刪除 /tmp 目錄內的檔案,mod_fastcgi 就會中斷。 |
|
Windows NT 和 Windows 2000 作業系統:FastCgiIpcDir 指引會指定 名稱 作為應用程式和 Web 伺服器之間的通信所用的指定管線的根。 名稱 格式必須是 >\\.\pipe\pipename。 . pipename 部分可含有反斜線以外的任何字元。 |
||
|
FastCgiIpcDir 指引必須在任何使用 UNIX Socket 的 FastCgiServer 或 FastCgiExternalServer 指引之前。 請確定這是 Web 伺服器能夠讀取、寫入和執行的目錄。 不應該有任何人能夠存取這個目錄。 FastCgiServer
您可以利用下列不區分大小寫的選項之一: |
|||
|
UNIX 平台:應用程式和 Web 伺服器通信時所用的 UNIX 網域 Socket 檔案名稱。 模組會在 FastCgiIpcDir 所指定的目錄內建立 Socket。 這個選項會使同一部機器中的其他應用程式(如 cgi-fcgi)能夠存取這個應用程式, 或使其他機器中的應用程式能夠利用外部 FastCGI 應用程式定義 FastCgiExternalServer 來存取這個應用程式。 如果沒有提供 -socket 或 -port 選項,模組會產生 UNIX 網域 Socket 檔案名稱。 -socket 和 -port 選項互斥。 |
||
|
Windows NT 和 Windows 2000 作業系統:應用程式用來與 Web 伺服器通信的管線名稱。 模組會根據 FastCgiIpcDir 指引指定的具名管線根目錄來建立具名管線。 這個選項會使同一部機器中的其他應用程式(如 cgi-fcgi)能夠存取這個應用程式,或使其他機器中的應用程式能夠利用外部 FastCGI 應用程式定義 FastCgiExternalServer 來存取這個應用程式。 如果沒有提供 -socket 或 -port 選項, 該模組會為具名管線產生一個名稱。 -socket 和 -port 兩個選項互斥。 如果檔案名稱開頭不是斜線 (/),就會假設這個檔案名稱是相對於 ServerRoot。 |
||
FastCgiSuexec
當您啟用 FastCgiSuexec 指引時,靜態或外部 FastCGI 應用程式定義的位置會成為非常重要。 這些差異是從定義它們的虛擬伺服器其中的 User 和 Group 指引繼承它們的使用者和群組。 User 和 Group 指引應該放在 FastCGI 應用程式定義之前。 這個函數不會將 FastCGI 應用程式限制在定義它的虛擬伺服器上。 應用程式可以服務有相同使用者和群組的任何虛擬伺服器所發出的要求。 如果收到 FastCGI 應用程式要求,但其中沒有以正確使用者和群組身分來執行的相符定義, 就會以正確的使用者和群組來啟動應用程式的動態實例。 這個動作會造成相同應用程式的多個副本以不同的使用者和群組身分來執行。 如果這造成問題,請禁止從其他虛擬伺服器瀏覽應用程式,或以相同的使用者和群組來配置虛擬伺服器。 請參閱 Apache 文件,以取得 suexec 和安全問題的詳細資訊。
(返回最上面)
|