Sun Java System Web Proxy Server 4.0.4 管理指南

瞭解自動配置檔案

身為 Proxy Server 管理員,您也必須負責建立與發行用戶端自動配置檔案。

自動配置檔案的用途

自動配置檔案以 JavaScript 撰寫,是一種精簡的物件型程序檔語言,可用來開發用戶端與伺服器網際網路應用程式。瀏覽器會解譯該 JavaScript 檔案。

瀏覽器首次載入時會下載該自動配置檔案。您可以將該檔案放在瀏覽器可使用 URL 來存取的任何位置。例如,您可以將該檔案放在 Web 伺服器上。您甚至可以將該檔案放在瀏覽器可使用 file:// URL 來存取的網路檔案系統中。

代理伺服器配置檔案是以 JavaScript 撰寫。JavaScript 檔案會定義單一函數 (稱為 FindProxyForURL),以決定瀏覽器應該使用哪個代理伺服器 (如果存在) 來存取每個 URL。瀏覽器會傳送兩個參數給 JavaScript 函數:瀏覽器執行所在之系統的主機名稱,以及瀏覽器嘗試取得的 URL。JavaScript 函數會傳回一個值給瀏覽器,告知瀏覽器如何繼續。

使用自動配置檔案就可以為各種類型的 URL、各種伺服器或甚至一天的不同時段,指定不同的代理伺服器 (或完全不指定代理伺服器)。換句話說,您可以設定多部特殊用途的代理伺服器,例如一部代理伺服器處理 .com 網域、另一部處理 .edu 網域,再一部處理剩下類型的網域。透過這種方式可以分散負載,並更有效率地使用代理伺服器的磁碟,因為這樣只會在快取記憶體中儲存所有檔案的一份副本,而不是多部代理伺服器都儲存相同的文件。

自動配置檔案也支援代理伺服器容錯移轉,因此若某部代理伺服器無法使用,瀏覽器會直接切換到另一部代理伺服器。

將代理伺服器當做 Web 伺服器存取

您可以在代理伺服器上儲存一或多個自動配置檔案,並將該代理伺服器當成 Web 伺服器使用 (其唯一的文件是自動配置檔案)。此舉可以讓身為代理伺服器管理員的您,維護組織中用戶端所需的代理伺服器自動配置檔案。同時也可以透過這種方式將該檔案保存在集中位置,因此更新檔案時,只需要執行一次更新動作,所有的瀏覽器用戶端都就可以自動取得更新。

您可以將代理伺服器自動配置檔案放在 server- root/proxy-serverid/pac/ 目錄中。在瀏覽器中,輸入代理伺服器自動配置檔案的 URL,方式是在 [Proxies] 標籤中鍵入該檔案的 URL。代理伺服器 URL 的格式如下:

http://proxy.domain:port/URI

例如,URL 可能是 http://proxy.example.com,也就是跟隨在 host:port 組合後的 URL 部分。然而若使用 URI,便可以使用範本來控制存取不同自動配置檔案的行為。例如,若建立了名為 /test 的 URI,且其包含名為 /proxy.pac 的自動配置檔案,便可以建立具有資源式樣 http://proxy.mysite.com:8080/test/.* 的範本。接著,您可以使用該範本來設定該目錄專屬的存取控制。

您可以建立多個自動配置檔案,並透過不同的 URL 來存取這些檔案。下表列出一些範例 URI,以及用戶端用來存取這些 URI 的 URL。

表 17–1 範例 URI 與對應的 URL

URI (路徑) 

代理伺服器的 URL 

http://proxy.mysite.com 

/employees 

http://proxy.mysite.com/employees 

/group1 

http://proxy.mysite.com/group1 

/managers 

http://proxy.mysite.com/managers 

搭配反向代理伺服器使用 PAC 檔案

由於反向代理伺服器的運作方式之故,所以將 .pac 檔案用在代理伺服器與伺服器上會非常困難。當代理伺服器收到檔案請求時,必須判斷該請求是要存取本地 .pac 檔案或遠端文件。

若要將代理伺服器當做反向代理伺服器 (除了維護與提供 .pac 檔案功能之外),請編輯 obj.conf 檔案,以確定 NameTrans 函數的順序是正確的。

建立標準對映,將代理伺服器當做反向代理伺服器。此動作通常會告訴代理伺服器將所有請求路由至遠端內容伺服器。您可以增加代理伺服器自動配置檔案,並將它對映到特定目錄,例如 /pac。在此情況下,想要取得 .pac 檔案的任何用戶端都必須使用如下 URL:

http://proxy.mysite.com/pac

注意 – 注意 –

建立此對映時,請務必確定遠端內容伺服器沒有類似的目錄。


編輯 obj.conf 檔案,以確保代理伺服器自動配置檔案的指令與函數出現在其他對映之前。此指令與函數必須在最前面,因為代理伺服器通常會先執行所有 NameTrans 函數,才處理請求。然而,透過自動配置檔案,代理伺服器會立即識別路徑並傳回 .pac 檔案。

下列範例是來自使用反向代理伺服器並維護自動配置檔案的 obj.conf 檔案。

<Object name="default">
NameTrans from="file:" fn="map" to="ftp:"
NameTrans from="/pac" fn="pac-map" name="file" 
	to="/ns-home/proxy/pac/proxy.pac"
NameTrans fn="redirect" from="http://foo.*" url="http://www.acme.com"
NameTrans from="/ns-icons" fn="pfx2dir" dir="/ns-home/ns-icons" name="file"
NameTrans fn="reverse-map" from="http://web.acme.com" 
	to="http://proxy.acme.com:8080"
NameTrans fn="map" from="http://proxy.acme.com:8080" 
	to="http://web.acme.com"
NameTrans fn="map" from="/" to="http://web.acme.com"
PathCheck fn="url-check"
Service fn="deny-service"
AddLog fn="flex-log" name="access"
AddLog fn="urldb-record"
</Object>