Apache HTTP Server 繁體中文版 2.4
說明 | 供 mod_proxy 使用的 SCGI 閘道模組 |
---|---|
狀態 | 擴充功能 |
模組識別碼 | proxy_scgi_module |
來源檔案 | mod_proxy_scgi.c |
相容性 | 於版本 2.2.14 及後續版本中提供 |
此模組需要 mod_proxy
服務。它提供針對 SCGI 通訊協定版本 1 的支援。
因此,為了取得處理 SCGI 通訊協定的能力,mod_proxy
和 mod_proxy_scgi
必須存在於伺服器上。
在 保護您的伺服器 之前,請勿啟用代理伺服器。開放的代理伺服器會對您的網路和整個網際網路構成危險。
請記住,為了讓下列範例運作,您必須啟用 mod_proxy
和 mod_proxy_scgi
。
ProxyPass "/scgi-bin/" "scgi://127.0.0.1:4000/"
除了上面所列的代理伺服器模組之外,平衡式閘道還需要 mod_proxy_balancer
和至少一個負載平衡器演算法模組,例如 mod_lbmethod_byrequests
等。 mod_lbmethod_byrequests
是預設模組,也會用於此範例組態。
ProxyPass "/scgi-bin/" "balancer://somecluster/" <Proxy "balancer://somecluster"> BalancerMember "scgi://127.0.0.1:4000" BalancerMember "scgi://127.0.0.1:4001" </Proxy>
除了控制 mod_proxy
行為的組態指令之外,環境變數 也可能會控制 SCGI 通訊協定提供者
mod_proxy_scgi
既不會建立,也不會匯出 PATH_INFO 環境變數。這能讓後端 SCGI 伺服器正確地確認 SCRIPT_NAME 與 Script-URI 並且符合 RFC 3875 中 3.3 章節的規定。如果你有需要讓 mod_proxy_scgi
產生 PATH_INFO 的「最佳猜測」,請設定這個環境變數。這個變數必須在 SetEnv
生效前設定。相反地,你可以使用 SetEnvIf
:SetEnvIf Request_URI . proxy-scgi-pathinfo
說明 | 啟用或停用後端回傳的內部重新導向回應 |
---|---|
語法 | ProxySCGIInternalRedirect On|Off|Headername |
預設值 | ProxySCGIInternalRedirect On |
範圍 | 伺服器設定、虛擬主機、目錄 |
狀態 | 擴充功能 |
模組 | mod_proxy_scgi |
相容性 | Headername 功能於 2.4.13 和較新版本中提供 |
ProxySCGIInternalRedirect
讓後端可以將閘道內部重新導向到不同的 URL。這項功能源自於 mod_cgi
,它可以在回應狀態為 OK
(200
) 而且回應包含 Location
(或其他經過設定的標頭)時,將回應內部重新導向,且其值從正斜線 (/
) 開始。這個值將被解釋成新的本機 URL,由 Apache httpd 內部重新導向。
mod_proxy_scgi
在這方面與 mod_cgi
相同,不同之處在於你可以停用這項功能,或指定使用 Location
以外的其他標頭。
ProxySCGIInternalRedirect Off # Django and some other frameworks will fully qualify "local URLs" # set by the application, so an alternate header must be used. <Location /django-app/> ProxySCGIInternalRedirect X-Location </Location>
說明 | 啟用 X-Sendfile 偽回應標頭評估 |
---|---|
語法 | ProxySCGISendfile On|Off|Headername |
預設值 | ProxySCGISendfile Off |
範圍 | 伺服器設定、虛擬主機、目錄 |
狀態 | 擴充功能 |
模組 | mod_proxy_scgi |
ProxySCGISendfile
指令讓 SCGI 後端能夠讓閘道直接提供檔案。這對於效能來說很有用 — httpd 可以使用 sendfile
或其他最佳化處理,而如果檔案透過後端 socket 傳輸,這些處理將無法執行。此外,檔案的內容不會被傳輸兩次。
ProxySCGISendfile
的參數決定閘道的行為
Off
On
X-Sendfile
,並將其值解釋成要提供的檔案名稱。標頭會從最後的回應標頭中移除。這等同於 ProxySCGISendfile X-Sendfile
。On
類似,但會使用參數作為標頭名稱,而不是內建標頭名稱 X-Sendfile
。# Use the default header (X-Sendfile) ProxySCGISendfile On # Use a different header ProxySCGISendfile X-Send-Static