Sun Java System Web Proxy Server 4.0.8 管理指南

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

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

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

http://proxy.domain:port/URI

例如,URL 可能為 http://proxy.example.com。如果您確實使用了 URI,亦即緊隨在 host:port 組合之後的 URL 部分,則您可以使用範本來控制對各種自動配置檔案的存取。例如,若建立了名為 /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>