IBM HTTP Server 說明:Proxy 指引

Proxy 指引

 

ProxyRequests

這可容許或防止 Apache 充當 PROXY 伺服器。 將 ProxyRequests 設成 'off' 並不會停用 ProxyPass 指引。

ProxyRemote

這會把遠端 Proxy 定義至這個 Proxy。<match> 為 遠端伺服器支援的 URL 綱目名稱,或遠端伺服器將使用的部份 URL 名稱, 或以 '*' 指示所有要求都應連絡此伺服器。<remote-server> 為遠端伺服器的 部份 URL。語法:
  <remote-server> = <protocol>://<hostname>[:port]
<protocol> 是用來與遠端伺服器通信的通信協定;此模組僅支援 "http"。

範例:

  ProxyRemote http://goodguys.com/ http://mirrorguys.com:8000
  ProxyRemote * http://cleversite.com
  ProxyRemote ftp http://ftpproxy.mydomain.com:8080
在最後一個範例中,proxy 會將還封裝了另一個 HTTP proxy 要求的 FTP 要求, 轉遞至可處理這些要求的另一個 proxy。

ProxyPass

此指引可讓遠端伺服器對映到本端伺服器的空間;通常本端伺服器不充當 proxy 使用,而是作為遠端伺服器的一個鏡映。<路徑> 為本端虛擬路徑名稱; <url> 為遠端伺服器的部份 URL。

假設本端伺服器位址為 http://wibble.org/;則

   ProxyPass         /mirror/foo/ http://foo.com/
會導致 <http://wibble.org/mirror/foo/bar> 的本端要求 在內部轉換成 <http://foo.com/bar> 的 proxy 要求。

ProxyPassReverse

此指引可讓 Apache 針對 HTTP 重新導向回應,調整位置標頭中的 URL。 例如,當 Apache 當作反轉 proxy 來避免略過反轉 proxy 時,此指引很重要,因為留在反轉 proxy 後面的後處理伺服器上有 HTTP 重新導向。

<路徑> 為本端虛擬路徑名稱。
<url> 為遠端伺服器的部份 URL - 和它們使用於 ProxyPass 指引的方式相同。

範例:
假設本端伺服器位址為 http://wibble.org/;則

   ProxyPass         /mirror/foo/ http://foo.com/
   ProxyPassReverse  /mirror/foo/ http://foo.com/
不僅會導致 <http://wibble.org/mirror/foo/bar> 的本端要求 在內部轉換成 <http://foo.com/bar> 的 proxy 要求 (此處由 ProxyPass 提供功能)。它還負責 伺服器 foo.com 傳送的重新導向:當 http://foo.com/bar 被使用者 重新導向至 http://foo.com/quux 時,在轉遞 HTTP 重新導向回應至從屬站之前, Apache 會將它調整至 http://wibble.org/mirror/foo/quux

請注意:這個 ProxyPassReverse 指引亦可以和 mod_rewrite 中的 proxy 透通特性 ("RewriteRule ... [P]") 一起使用,因為它不以對應的 ProxyPass 指引為依據。

AllowCONNECT

AllowCONNECT 指引指定 proxy CONNECT 方法連接的埠號清單。 當要求一個 https 連線且透過 http 的 proxy 通道生效時,現在的瀏覽器會使用此方法。
就預設值而言,僅啟用預設的 https 埠 (443) 及預設的 snews 埠 (563)。 AllowCONNECT 指引可用來置換此預設值,並僅容許連接所列出的埠。

ProxyBlock

ProxyBlock 指引可指定以空格區隔的字組、主電腦及/或網域之清單。 對於名稱中含有符合的字組、主電腦或網域的網站之 HTTP、HTTPS 及 FTP 文件要求,被 PROXY 伺服器暫停執行。此 proxy 模組也會在啟動期間嘗試判斷可能是主電腦名稱的清單項目的 IP 位址,也會快取它們來進行相符測試。範例:
  ProxyBlock joes-garage.com some-host.co.uk rocky.wotsamattau.edu
若被 IP 位址參考到,則 'rocky.wotsamattau.edu' 也相符。

請注意:'wotsamattau' 亦足以和 'wotsamattau.edu' 相符。

另請注意

ProxyBlock *
暫停執行與全部網站的連接。

ProxyReceiveBufferSize

針對增加的產量,ProxyReceiveBufferSize 指引可對送出的 HTTP 及 FTP 連接, 指定一個明確的網路緩衝區大小。此緩衝區大小必須大於 512,若設定為 0,則會使用系統的預設緩衝區大小。

範例:

  ProxyReceiveBufferSize 2048

NoProxy

此指引僅對企業內部網路內的 Apache PROXY 伺服器有用。 NoProxy 指引指定以空格區隔的次網路、IP 位址、主電腦及/或網域的清單。 對於符合上述一或多個項目的主電腦之要求一定會直接被回應,而不必轉遞至配置的 ProxyRemote PROXY 伺服器。

範例:

  ProxyRemote  *  http://firewall.mycompany.com:81
  NoProxy         .mycompany.com 192.168.112.0/21 
NoProxy 指引的引數為下列其中一項:
網域
網域為非完整 DNS 網域名稱,前面加上一個句點。 它代表邏輯上屬於相同 DNS 網域或區域的主電腦清單 (例如,主電腦名稱的字尾皆以網域為結尾)。
範例: .com .apache.org.
區分網域主電腦名稱 (包括語法及語意;DNS 網域也可以有 DNS A 記錄!), 網域的前面一定有一個前置句點。
附註:網域名稱的比較無關乎大小寫,且網域一定假設固定在 DNS 樹狀的根,因此 .MyDomain.com.mydomain.com. (注意尾端句點) 這兩個網域被視為同等。因為網域比較不涉及 DNS 查閱,所以比次網路比較更有效率。
次網路
次網路為不完整的網際網路位址,格式為以點隔開的四組數字, 最後面一組數字的後面可以選擇性地加上斜線及網路遮罩,此網路遮罩指定為 次網路中的有效位元數。它是用來代表透過一般網路介面可連上的主電腦次網路。 若缺乏明確網路遮罩,則假設省略的 (或使用零值的) 尾端數字指定遮罩。 (在此情形下,網路遮罩僅能是 8 位元的倍數。)
範例:
192.168192.168.0.0
次網路 192.168.0.0 具有 16 有效位元的隱含式網路遮罩 (有時使用於網路遮罩格式 255.255.0.0)
192.168.112.0/21
次網路 192.168.112.0/21 具有 21 有效位元的網路遮罩 (也使用於格式 255.255.248.0)
在被省略的情況下,具有 32 有效位元的次網路相當於 IP 位址, 而具有 0 有效位元的次網路 (例如,0.0.0.0/0) 與常數 _Default_ 相同,符合任何 IP 位址。
IP 位址
IP 位址代表一個完整的網際網路位址,其格式為以點隔開的四組數字。 通常,此位址代表一個主電腦,但不一定要是連接該位址的 DNS 網域名稱。
範例: 192.168.123.7
附註:IP 位址不需被 DNS 系統解析,所以可產生更有效的 Apache 效能。

亦請參閱: DNS 議題

主電腦名稱
主電腦名稱是一個完整的 DNS 網域名稱,可透過 DNS 網域名稱服務程式解析為一或多個 IP 位址。 它代表邏輯主電腦(對照網域,請參考上述), 而且至少要可以解析成一個 IP 位址(或通常解析成具有不同 IP 位址的主電腦清單)。
範例: prep.ai.mit.edu www.apache.org.
附註:在許多狀況下,指定 IP 位址來代替主電腦名稱更有效率,因為可以省略 DNS 查閱。 當名稱伺服器的連接是使用慢速 PPP 鏈結時,Apache 中的名稱解析可能需要很長的處理時間。
附註:主電腦名稱的比較無關乎大小寫,且主電腦名稱一定假設固定在 DNS 樹狀的根,因此,WWW.MyDomain.comwww.mydomain.com. (注意尾端句點) 這兩個主電腦被視為同等。

亦請參閱: DNS 議題

ProxyDomain

此指引僅對企業內部網路內的 Apache PROXY 伺服器有用。 ProxyDomain 指引可指定 Apache PROXY 伺服器所屬的預設網域。 若發現某要求的主電腦對象沒有網域名稱,則會產生一個重新導向回應, 它針對相同主電腦但有附加已配置的網域

範例:

  ProxyRemote  *  http://firewall.mycompany.com:81
  NoProxy         .mycompany.com 192.168.112.0/21 
  ProxyDomain     .mycompany.com

ProxyVia

此指引可透過 Proxy 控制 Via: HTTP 標頭的用法。 它的用途是去控制一組 PROXY 伺服器的 proxy 要求流程。 有關 Via: 標頭行的說明,請參閱 RFC2068 (HTTP/1.1)。

CacheForceCompletion

若快取的 http 轉送被取消,但是已轉送超過指定的百分比,則 proxy 模組會完成快取轉送。

這是一個百分比,而且必須是介於 1 和 100 之間的數字,如果是 0,則使用預設值。 100 這個數字,唯有容許轉送完成時才會使文件被快取。建議使用 60 到 90 之間的數字。

CacheRoot

設定包含快取檔的目錄名稱;此名稱必須可被 httpd 伺服器撰寫。(請參閱 user 指引)。
設定 CacheRoot 啟用 proxy 快取;若未定義 CacheRoot, 但 ProxyRequests 設定為 開啟,則仍可使用 Proxy 功能,但不會執行任何快取。

CacheSize

設定所要的快取空間使用量,以 KB (1024 位元組單位) 為單位。 雖然使用量的增加可能會超過這個設定,您可以使用垃圾收集來刪除檔案,讓使用量降至這個設定或設定以下。

根據預期的 proxy 流量及 CacheGcInterval, 使用的值至少要比可用空間少 20 至 40 %。

CacheGcInterval

每隔 <時間> 小時檢查一次快取,若空間使用量超過 CacheSize 的設定,並將刪除一些檔案。 請注意:<時間> 可接受浮點值,例如,您可以使用 CacheGcInterval 1.5,表示每隔 90 分鐘檢查一次快取。(若未設定,則不會執行垃圾收集,而且快取會無限制增加。) 另請注意:CacheGcInterval 的設定越大, 則兩次垃圾收集之間的快取需要比所配置的 CacheSize 更多的額外空間。

CacheMaxExpire

在沒有檢查原始伺服器的情況下,快取型 HTTP 文件最多可保留 <時間> 小時。 因此,這些文件最多可以過期 <時間> 小時。即使文件本身提供到期日,此限制仍然有效。

CacheLastModifiedFactor

若原始 HTTP 伺服器沒有提供文件的到期日,請使用下列公式來預估到期日

  有效期限 = 上次修改後的時間 * <因數>
例如,若文件上次修改時間是 10 小時之前,且 <因數> 為 0.1, 則有效期限將被設定為 10*0.1 = 1 小時。

若有效期限大於 CacheMaxExpire 的設定,則以後者為優先。

CacheDirLevels

CacheDirLevels 可設定快取的子目錄層次數。快取的資料會被儲存到 CacheRoot 下的這些目錄層次。

CacheDirLength

CacheDirLength 可設定 proxy 快取子目錄名稱的字元數。

CacheDefaultExpire

若文件是透過不支援到期時間的通信協定提取的,請使用 <時間> 小時作為到期時間。 CacheMaxExpire 不會置換這個設定。

NoCache

NoCache 指引指定以空格區隔的字組、主電腦及/或網域之清單。 來自符合的字組、主電腦或網域的 HTTP 文件及無密碼式 FTP 文件,不會被 PROXY 伺服器快取。 此 proxy 模組也會在啟動期間嘗試判斷可能是主電腦名稱的清單項目的 IP 位址,也會快取它們來進行相符測試。範例:

  NoCache joes-garage.com some-host.co.uk bullwinkle.wotsamattau.edu
若被 IP 位址參考到,則 'bullwinkle.wotsamattau.edu' 也相符。

請注意:'wotsamattau' 亦足以和 'wotsamattau.edu' 相符。

另請注意

NoCache *
完全停用快取功能。