ISA Server 2006 中的快取和 CARP

發佈日期: 2006 年 9 月 5 日

Microsoft® Internet Security and Acceleration (ISA) Server 2006 為了提升效能與加快網頁要求的回應時間而實作了快取功能。您可以設定快取來包含使用者經常要求的網頁物件。當使用者提出要求時,快取機制會直接從快取中提供要求的物件,而不是向網際網路提出要求。網頁快取提供兩大優點:

加快網際網路使用者的存取速度。從快取中提供網頁要求,而無需連線至遠端網際網路伺服器。在網頁發行實例中,反向快取可加快網際網路使用者向 ISA Server 發行的企業網頁伺服器要求網頁內容的存取。

減少網際網路連線的流量。從快取中提供經常要求的物件,因而能節省網際網路連線的頻寬。在網頁發行實例中,反向快取可減少發行的網頁伺服器上的負載。

ISA Server 提供兩種快取類型:

正向快取。正向快取會將已快取的網頁物件提供給向網際網路提出網頁要求的內部使用者。

反向快取。反向快取會將已快取的內容提供給向 ISA Server 發行的內部網頁伺服器提出要求的外部網際網路用戶端。

在 ISA Server 2006 Enterprise Edition 中,快取陣列路由通訊協定 (CARP) 可讓 ISA Server 電腦的陣列平衡網頁流量,及分割其間的快取內容。CARP 可讓用戶端電腦識別陣列中最適合處理網頁要求的伺服器。請注意,CARP 只能用於正向快取的實例,不適用於反向快取。

快取實例

在連出網頁 Proxy 實例中,ISA Server 會實作正向快取。在網頁發行實例中,則會實作反向快取。

正向快取

如果使用者位於受 ISA Server 保護的內部網路中,當他要求存取網際網路上的網頁內容時,便會執行正向快取。

下圖說明當內部使用者要求的內容不在快取內時所進行的步驟。

1.

使用者啟始網際網路的網頁要求。ISA Server 攔截此要求。

2.

ISA Server 檢查要求的內容是否位於快取中 (可以是 RAM 型快取或磁碟型快取)。

3.

如果內容不在快取中或已經過期,ISA Server 便會將此要求轉送至網際網路網頁伺服器。

4.

網際網路網頁伺服器傳回要求的資訊。ISA Server 會根據快取設定,將網頁內容存放在記憶體中的網頁快取中,這個快取會儲存最普遍和最常用的要求內容以供快速擷取。

5.

ISA Server 接著會將網頁內容傳回至提出此要求的使用者。

6.

經過一段時間後 (由快取演算法決定),如果使用者不再經常要求此內容,ISA Server 便會將此內容複製到磁碟型快取中,然後從 RAM 中清除。此時,唯一的內容複本會保存在磁碟型快取中。

7.

如果之後有其他使用者要求儲存在磁碟型快取中的內容,ISA Server 便會將此內容傳回記憶體中的快取內。

下圖說明當內部使用者要求的內容位於快取內時所進行的步驟。

1.

使用者啟始網際網路的網頁要求。ISA Server 攔截此要求。

2.

ISA Server 檢查所要求內容的有效版本是否在快取中 (可以是 RAM 型快取或磁碟型快取)。

3.

如果內容尚未過期且仍然有效,ISA Server 便會從快取中擷取內容。

4.

ISA Server 接著會將擷取的內容傳回至提出此要求的使用者。

5.

經過一段時間後 (由快取演算法決定),如果使用者不再經常要求內容,ISA Server 便會將此內容複製到磁碟型快取中,然後從 RAM 中清除。此時,唯一的內容複本會保存在磁碟型快取中。

6.

如果之後有其他使用者要求儲存在磁碟型快取中的內容,ISA Server 便會將此內容傳回記憶體中的快取內。

反向快取

當網際網路使用者向 ISA Server 發行的網頁伺服器要求內容時,便會執行反向快取。

下圖說明當內部使用者要求的內容位於快取內時所進行的步驟。

1.

網際網路使用者為取得位於企業網頁伺服器上的內容所傳送的要求。ISA Server 攔截此要求。

2.

ISA Server 檢查快取是否包含要求的內容。如果內容不在快取中或已經過期,ISA Server 便會將此要求轉送至企業網路上的網頁伺服器。

3.

企業網頁伺服器將要求的資訊傳回至 ISA Server。

4.

ISA Server 會根據快取設定,將網頁內容存放在記憶體中的網頁快取內,這個快取會儲存最普遍和最常用的要求內容以供快速擷取。

5.

ISA Server 接著會將內容傳回至提出此要求的網際網路使用者。

6.

經過一段時間後 (由快取演算法決定),如果使用者不再經常要求內容,ISA Server 便會將此內容複製到磁碟型快取中,然後從 RAM 中清除。此時,唯一的內容複本會保存在磁碟型快取中。

7.

如果之後有其他使用者要求儲存在磁碟型快取中的內容,ISA Server 便會將此內容傳回記憶體中的快取內。

ISA Server 會從記憶體中的網頁快取或磁碟型網頁快取來滿足後續網際網路使用者的企業網頁資源要求。

當您配置快取磁碟機並藉此啟用快取時,會依照預設啟用反向快取。在某些情況下,您可能想要停用此設定。例如,您可能要停用此設定,以確保網際網路使用者取得發行網站的最新版本。若要這麼做,請建立停用快取 http://published_site/* URL 的快取規則,以確保來自組織外對發行網站的要求不會快取任何內容。

回到頁首回到頁首

快取網頁物件

快取物件時,ISA Server 會將物件附加到快取內容檔。如果快取內容檔已滿而無法儲存新物件,ISA Server 會使用可評估期限、存取物件的頻率及大小的公式,藉此移除快取中的舊物件。

ISA Server 會將物件快取到 RAM 和磁碟。快取到記憶體的物件比快取到磁碟的物件更能快速擷取。根據預設,會使用 10% 的 RAM 來快取物件。所有其他物件都只會快取到磁碟中。一般而言,RAM 越多,就能提供越高的效能來處理快取物件。較舊的要求會儲存在硬碟上。在大型部署中,應使用高效能的硬碟。

並非所有網際網路內容均可快取。ISA Server 將不會快取回應或要求標頭中包含特定資訊的網頁,如下所述:

標頭類型

詳細資料

Cache-Control: no-cache 回應標頭

HTTP 1.1 Cache-control 標頭禁止所有快取。

Cache-Control: private 回應標頭

HTTP 1.1 Cache-Control: private 標頭表示物件不能儲存在共用快取中,而且僅供特定用戶端使用。

Pragma: no-cache 回應標頭

HTTP 1.0 伺服器不能使用 Cache-Control 標頭。Pragma: no-cache 標頭可確保當用戶端經由安全 HTTPS 連線與伺服器通訊,而伺服器傳回 Pragma-no-cache 標頭與其回應時,將不會快取此回應。

Www-Authenticate 回應標頭

表示需要驗證。

Set-Cookie 回應標頭

表示使用瀏覽器 Cookie 識別使用者的頁面

Authorization 要求標頭

除非原始伺服器將 'cache-control: public' 標頭包含在回應中來明確允許此標頭,否則不會進行快取。

Cache-Control: no-store 要求標頭

表示快取不得儲存要求或其回應的任何部分。

如果網站並未針對不得快取的內容正確設定快取控制指示詞,ISA Server 可能會將使用者內容傳回給惡意使用者。

正向快取 SSL 內容

1.

請注意,在正向快取實例中,不會快取 SSL 流量。從內部 Web 使用者到安全網際網路 HTTPS 伺服器的連出要求會經過 ISA Server 通道。如需此實例的詳細資訊,請參閱 Microsoft TechNet 網站中的 <設定在 SSL 上進行網站的內部用戶端存取>(英文)。此文件是針對 ISA Server 2004 所撰寫,但也與 ISA Server 2006 相關。

快取壓縮內容

ISA Server 2006 包含壓縮功能,能夠更有效率地滿足壓縮要求。HTTP 壓縮是一項全域的 HTTP 原則設定。它會套用在所有透過 ISA Server 與指定的網路或網路物件往返的 HTTP 流量,而非特定規則所處理的流量。HTTP 壓縮是由兩個網頁篩選器提供:

壓縮篩選器:此篩選器負責壓縮和解壓縮 HTTP 要求及回應。此篩選器具有高優先順序,且在網頁篩選器排序清單中為高順位。這是因為它負責進行解壓縮。在其他任何網頁篩選器檢視內容之前,必須先進行解壓縮。

快取壓縮內容篩選器:此篩選器負責快取壓縮內容,從快取中的壓縮內容來處理要求。此篩選器的優先順序最低,在網頁篩選器排序清單中為低順位,因為快取可以在所有其他的篩選器處理內容後才進行。

快取與壓縮相輔相成,能夠更有效率地滿足壓縮要求。下面說明快取與壓縮如何相互配合:

內容會以下列其中一種格式來快取:

已壓縮:以壓縮格式來要求內容,並以壓縮格式來快取。

未壓縮:以未壓縮格式來要求內容,並以未壓縮格式來快取。

未壓縮亦不可壓縮::如果用戶端要求壓縮的內容,而快取中的要求未經壓縮,則它會以不可壓縮的格式儲存在快取中。下次再收到對相同壓縮內容的要求時,ISA Server 會將該內容識別為不可壓縮,轉而從未壓縮的快取 (而非網際網路) 提供服務。經過檢查的內容同樣也會儲存為未壓縮的格式。

內容一旦快取之後,即使變更 [ISA Server 管理] 的 [一般] 節點中的壓縮設定,仍會繼續由快取提供服務。舉例來說,如果一開始就啟用壓縮內容的內容檢查,該內容就會以未壓縮的格式儲存在快取中。如果用戶端要求壓縮的內容,則 ISA Server 會先壓縮內容,然後才將內容提供給用戶端。如果停用內容檢查,該內容將繼續從快取中提供。在這種情況下,ISA Server 會繼續替要求壓縮內容的用戶端壓縮內容,要求伺服器提供壓縮資料並將壓縮內容提供給用戶端。這樣會影響 ISA Server 處理要求的效能。若要讓壓縮設定的變更反映在快取內容中,您必須先清除快取。若要清除快取,請透過 ISA Server 管理來停用快取,然後刪除快取存放檔案,如 Dir1.cdat (ISA Server 快取檔案的預設名稱)。在每個設定要快取的磁碟機上,都有一個快取檔案放在 Urlcache 資料夾中。刪除快取檔案後,請在 ISA Server 管理中啟用快取。另外還有一個範例指令碼可說明如何以程式設計方式清除快取。如需詳細資訊,請參閱Microsoft TechNet 網站中的<刪除快取內容>(英文)。在 ISA Server 2006 Enterprise Edition 中,此工具必須在每個陣列成員上執行。

當 ISA Server 網頁篩選器檢查連入的壓縮內容時,會將壓縮的內容解壓縮。解壓縮後,內容會以解壓縮的文字儲存在快取中。如果 ISA Server 收到對快取內容的要求,會在傳送前將資料重新壓縮,而此舉將增加回應時間。

回到頁首回到頁首

設定快取設定

請依下列步驟設定快取:

啟用和設定快取。根據預設,當您安裝 ISA Server 時,實際上會停用快取。您必須在快取磁碟機上配置空間以啟用快取。

設定快取規則。設定快取規則,以決定從指定的目的地中快取內容的方式,以及從快取中擷取內容的方式。

設定內容下載工作。設定內容下載工作可讓 ISA Server 立即或於指定時間自動下載內容。例如,ISA Server 可以設定成在離峰時段下載經常要求的內容,進而改善網路效能。

啟用和設定快取

將快取磁碟機的大小設定為大於零時,即可啟用快取。請在 [ISA Server 管理] 的 [快取] 節點中的 [快取磁碟機] 索引標籤上設定快取磁碟機。請注意:

單一快取檔案的大小上限為 64 GB。如需更大的快取存放容量,您可以透過不同的磁碟機將其分割為數個檔案。

您必須使用格式化為 NTFS 檔案系統的磁碟分割來快取,而且磁碟機必須是本機磁碟機。

快取檔案是單一的檔案。為了提高效率,可以將這個檔案放置在每個磁碟分割上。建議將此檔案存放在獨立的實體磁碟上,與安裝作業系統、ISA Server 及網頁檔案的磁碟分開。這樣可減少系統與開機磁片的爭用。建議您在使用磁碟機進行快取之前,先格式化該磁碟機。

您可以對每部伺服器設定快取的大小和位置。建議您配置大型快取,因為超過快取大小上限時,物件會從快取中丟棄。

藉由檢視作業系統效能監視器中的快取效能計數器,即可得知快取是否正在進行中。如需快取效能計數器的詳細資訊,請參閱 Microsoft TechNet 網站 中的 <ISA Server 2006 的效能計數器參考>(英文)。

如需啟用和設定快取磁碟機的相關指示,請參閱 ISA Server 線上說明。

如需快取效能建議的詳細資訊,請參閱 Microsoft TechNet 網站中的 <ISA Server 效能的最佳作法>(英文)。目前,這篇文章指的是 ISA Server 2004,但快取效能資訊也與 ISA Server 2006 相關。

重新配置快取磁碟機

當您設定磁碟機進行快取時,ISA Server 會在 drive:\urlcache 資料夾中建立快取內容檔案 (Dir1.cdat)。您可以變更這個預設位置。

您可以在磁碟機上指定替代的快取檔案位置,包括環境變數,例如 %cacheDirectory%。如果指定的資料夾不存在,ISA Server 會警告您指定的位置無效,並嘗試建立資料夾。

如果改用其他任何快取資料夾,則「網路服務」帳戶必須擁有讀取根分割及該資料夾所有上層資料夾的權限。若為快取資料夾,則需要下列權限:

網路服務: 完全控制

系統: 完全控制

系統管理員: 完全控制

如果未正確設定權限,可能會發生下列錯誤事件: 14176: 「磁碟快取 drive:\urlcache\Dir1 無法初始化。請檢查先前記錄的事件或錯誤碼,識別快取失敗的原因。請檢查磁碟已連接,且沒有毀損。」

設定快取內容

啟用快取磁碟機之後,有許多可以讓您設定的快取內容。下列設定可指定快取的網頁物件,以及是否啟用負快取 (Negative Caching):

快取未指定上次修改時間的物件。此設定預設為啟用,這表示不含上次修改時間戳記的網頁或物件仍會快取。

快取即使沒有 HTTP 200 狀態碼為 200 的物件。此設定預設為啟用,指定 ISA Server 應快取沒有此狀態碼的網頁。HTTP 200 狀態碼是對網頁伺服器的許可回應,表示已達成要求,對 ISA Server 而言表示已取得完整網頁。

快取在記憶體中的 URL 大小上限 (位元組)。使用此設定,您可以對在記憶體中快取的物件設定大小上限。這對於防止過度快取大型物件 (如圖形) 很有用。但上限數值太小可能會妨礙快取效能,因為從 RAM 快取提供物件較快。根據預設,ISA Server 會將 RAM 中的 URL 大小限制為 64 KB。

負快取可讓您指定當所需的網頁伺服器無法處理要求時,在何種情況下應將過期的快取物件傳回至使用者。若要指示不應使用負快取,請選取 [不要傳回已過期的物件 (傳回錯誤分頁)] 設定。若要指示在某些情況下應傳回過期的物件,請選取 [只有在過期日期如下時才傳回已過期的物件],然後設定下列條件:

少於這個百分比的原始存留時間。在每個快取規則中指定存留時間 (TTL) 值。您可以根據原始 TTL 的百分比,指定應從快取中提供已過期物件的時間長度。例如,如果指定 50,則 ISA Server 傳回已過期物件的最長期間會等於原始 TTL 設定的 50%。

但不多於 (分鐘)。此設定表示,如果物件是在指定的分鐘數之前過期,則即使它還在之前指定的 TTL 百分比之內,ISA Server 也不應傳回這個已過期的物件。

用於快取的可用記憶體的百分比。此設定表示將用於快取的可用 RAM 百分比。預設值是 10%。

設定快取規則

使用 [新增快取規則精靈] 設定快取規則,以指定要儲存於快取中的內容類型,以及從快取服務物件的方法。可以以個別規則為基礎,使用下列設定來設定要儲存在快取中的物件:

快取規則目的地頁面。指定快取規則將套用的目的地。您可以將規則套用於單一網站、一組網站或其他任何 ISA Server 網路物件。

擷取內容頁面。指定如何從快取擷取物件,如下所述:

只有在有效版本的物件存在於快取中。如果不存在有效版本,對伺服器發出路由要求。選取此設定可指定只有當快取包含要求物件的有效版本時,才處理此要求。如果有效版本不存在,則應從要求的網站處理此要求。

如果快取中存在任何版本的物件如果不存在任何版本,對伺服器發出路由要求。選取此設定可指定應提供快取中任何可用的要求物件版本。如果已設定此設定,則永遠都會服務過期的物件。如果快取中沒有物件可提供,則從要求的網站服務要求。

如果快取中存在任何版本的物件如果不存在任何版本,捨棄該要求 (永不對此伺服器發出路由要求)。選取此設定可指定應提供快取中任何可用的要求物件版本。如果已設定此設定,則永遠都會服務過期的物件。如果快取中沒有物件可提供,則捨棄此要求並傳回錯誤頁面。

快取內容頁面。指定從網際網路擷取內容以服務 ISA Server 快取的要求之方式,如下所述:

永不,將不會快取任何內容。選擇此設定以指定永不快取使用此規則傳回給使用者的內容。

如果來源和要求標頭標示要快取。選取此設定,以指定如果標頭指示快取,則快取使用此規則傳回給使用者的內容。您也可以指定進一步條件,當來源和要求標頭指示要快取時,便快取符合這些條件的要求內容,如下所述:

動態內容。指定即使物件標示成不可快取,ISA Server 仍要快取擷取的物件。

用於離線瀏覽的內容 (302,307 回應)。指定要快取具有 302 和 307 代碼的內容。

擷取時要求使用者驗證的內容。指定 ISA Server 會快取可能需要存取其驗證的內容。請注意,啟用此設定後,非驗證使用者可能可以存取已快取的內容。

快取進階設定頁面。指定進階設定:

不要快取大小超過以下限制的物件。此設定會指定 ISA Server 要快取的物件大小上限。

快取 SSL 回應。您可以選取要快取 SSL 橋接流量的 SSL 回應。將不會快取 SSL 通道流量。實際上,這表示您可以在反向快取實例中快取 SSL 流量,此時的內部網站是透過 SSL 發行,而 SSL 要求會在 ISA Server 防火牆上終止並橋接到內部網頁伺服器。無法快取從 LAN 用戶端經過 ISA Server 通道到安全網際網路網頁伺服器的連出 SSL 要求。

HTTP 快取頁面。設定 HTTP 快取內容,如下所述:

啟用 HTTP 快取。此設定指定將快取規則設定為快取所要求的 HTTP 物件。

設定物件的 TTL (內容年齡的 %)。根據 TTL 設定,快取的 HTTP 物件在快取中仍然有效。TTL 設定是以定義在回應標頭中的 TTL,以及定義在快取規則中的 TTL 界限為基礎。內容年齡百分比是指內容存在時間的百分比。百分比越高,更新快取的頻率就越低。

不少於 (No less than)。這表示 HTTP 物件保留在快取中的最短時間。

不多於 (No more than)。這表示 HTTP 物件保留在快取中的最長時間。

也套用這些 TTL 界限到指定期限的來源。此設定可指定即使來源包含過期資料,若它不在指定的 TTL 界限內,仍會覆寫其 TTL。

FTP 快取 (FTP Caching) 頁面。超過物件的 TTL 時,此物件便被視為過期。然後,會根據負快取組態設定值,從快取中傳回內容。您也可以指定 FTP 內容的 TTL。根據預設,所有 FTP 物件的 TTL 都設為一天。

預設快取規則

當您安裝 ISA Server 時,它會設定預設快取規則。預設規則會經過初始設定,如此便只會從 ISA Server 快取中擷取到有效的要求物件。如果快取中的物件無效,則會從網際網路直接擷取它。您無法修改預設快取規則擷取物件的方式。

快取規則會依序排列,最後才處理預設的快取規則。ISA Server 電腦會針對每個新連線依序處理快取規則。第一個規則最先處理。如果要求符合規則指定的條件,便會據此快取要求。否則便處理下一個規則。如此依序處理至最後一個規則 (即預設規則) 並套用至要求。

Microsoft Update 快取規則

從 Microsoft Update 更新企業用戶端電腦上的 Microsoft Windows Server™ 2003 及 Windows® 2000 Server 作業系統和其他 Microsoft 產品可能會佔用相當可觀的頻寬。此問題在低頻寬連線的情況下會更嚴重。

為了節省頻寬,ISA Server 會包含預設快取規則,可使用幕後智慧型傳送服務 (BITS) 來快取 Microsoft 更新。BITS 可讓您傳輸大量的資料,而不會降低網路效能。它是透過將資料分成小區塊傳送、在出現未使用頻寬時即加以利用,以及在目的地重組資料的方式,來達成此目的。BITS 功能並不適用於任何其他快取規則。

定義快取磁碟機後便會啟用 Microsoft Update 快取規則,必要時可予以停用。根據預設,規則會啟用幕後智慧型傳送服務 (BITS) 快取,而且無法使用 ISA Server 管理 MMC 主控台來停用。

設定內容下載工作

內容下載工作可讓您主動依照 HTTP 內容來更新快取,以便預先安排用戶端要求。您可以建立內容下載工作,以排定將內容從網際網路直接下載到快取,而背景處理會根據預先定義的排程下載內容。排定快取內容下載工作可節省寶貴的網路頻寬,並提高整體的快取效能又不影響輸送量。若要設定排定的下載工作,需要執行下列動作:

啟用系統原則規則。必須啟用 ISA Server 系統原則規則。如果建立排定的下載工作但未啟用這些規則,系統會提供自動啟用規則的選項。否則,您可以手動啟用規則群組,方法是在 SA Server 管理的 [防火牆] 節點中啟用「排定的下載工作」系統原則群組。啟用此設定群組時,ISA Server 會封鎖來自 ISA Server 電腦的未驗證 HTTP 流量。即使其他某些原則規則允許此流量,結果也是一樣。若要允許這類流量,無需啟用系統原則設定群組,您可以建立存取規則來允許 HTTP 存取所有網路,這樣才能有效執行內容下載工作。此外,請新增高優先順序的存取規則以允許來自「本機主機」網路的未驗證 HTTP 存取。

啟用本機主機網路以接聽網頁 Proxy 要求。如果建立排定的下載工作但未啟用此設定,系統會提供自動啟用此設定的選項。

建立排程的快取內容下載工作。您可以使用 [內容下載工作精靈] 建立內容下載工作 (從 [ISA Server 管理] 的 [快取] 節點中的 [內容下載工作] 索引標籤中執行)。您可以為內容下載工作指定下列內容:

下載頻率頁面。指定下載內容的頻率。您可以指定此工作只在精靈結束後立即執行一次,或於指定時間執行一次。或者,您可以自動化週期性的下載工作。請注意,只有在執行 Microsoft ISA Server 工作排程器服務時才能執行下載工作。如果是排定為執行一次或每日及每週執行的工作,請指定執行工作的日期與時間。

內容下載頁面。指定要下載內容的來源 URL。您也可以指定 URL 限制。例如,您可以指定是否要限制下載到單一網域、如何遵循內嵌連結、下載可儲存的物件數量上限,或是允許此工作建立的同時 TCP 連線數目上限。

內容快取頁面。指定要快取的內容,以及物件到期前在快取中存留的期限:

快取內容。指定是否要快取 URL 中的所有內容,包括重新導向回應 (301、302 及 307)。或者,您可以選擇快取來源與要求標頭指示要快取的內容。如果來源和要求標頭指示要快取,或內容是動態內容,便快取此內容 (即使標頭並未指示要快取內容)。

存留時間。指定由工作擷取的物件會在快取中維持多久的有效狀態。您可以選擇內容要根據回應標頭與快取規則設定來保持有效狀態。選取 [若回應中未定義則設定 TTL],以便指定唯有當物件沒有設定 TTL 的回應標頭時,工作才覆寫物件的 TTL。如果物件具有 TTL 相關標頭,便會根據快取規則進行處置。選取 [覆寫物件的 TTL] 以指定下載的內容會標示為新的 TTL。TTL 設定定義著下載的內容會保留在快取中多久。在 [以新的 TTL (分) 標記下載的物件] 中輸入想要的 TTL。

請注意:

如果快取內容下載工作失敗,便會在 Windows 事件檢視器中記錄一個事件。

如果下載物件的網頁伺服器要求用戶端驗證,則排定的內容下載工作將會失敗。

回到頁首回到頁首

Enterprise Edition 中的快取陣列路由通訊協定

ISA Server 2006 Enterprise Edition 使用快取陣列路由通訊協定 (CARP) 來提供 ISA Server 電腦陣列作為單一的邏輯快取。CARP 可讓 ISA Server 陣列成員有效平衡以網路為主的用戶端負載,並於其間分割快取的內容。在用戶端部分,CARP 提供用戶端電腦必要的資訊和演算法來識別陣列中最適合處理要求的伺服器,藉此免除陣列成員在陣列成員之間轉送要求的需要。CARP 也支援伺服器本身及鏈結 Proxy 的陣列伺服器選項。

CARP 使用雜湊型路由在陣列成員之間散佈 URL 要求,並決定透過陣列來解決要求的最佳路徑。ISA Server 2006 和 ISA Server 2004 SP2 使用雜湊功能來平均散佈要求。瀏覽器或下游 Proxy 知道 URL 要求的資訊儲存在陣列中的確切位置,也知道先前的要求是否已快取這些資訊,或是在網際網路上尋找要傳送的資訊,然後第一次快取它。

ISA Server 2006 Enterprise Edition 中的 CARP 演算法使用主機名稱來確定處理要求的陣列成員。CARP 會將特定主機 (如 www.fabrikam.com) 的所有要求指派給特定的陣列成員。這樣可確保要求與回應是交由同一個陣列成員處理,以維持工作階段的上下關聯性。

CARP 具備許多強大的優點:

由於 CARP 會判定最佳的要求解析路徑,因此 Proxy 伺服器之間不需要傳統網際網路快取通訊協定使用的查詢訊息。如此可避免嚴重的查詢阻塞。

CARP 會消除重複的內容。透過網際網路快取通訊協定網路,五個 Proxy 伺服器的陣列會針對最常要求的 URL 迅速發展成多個重複快取。CARP 的雜湊型路由可讓所有陣列成員以單一邏輯快取的型態存在,以避免上述情況發生。結果能更快回應查詢以及更有效使用伺服器資源。

CARP 具有正向延展性。基於其雜湊型路由和對等搜尋獨立性,隨著更多 Proxy 伺服器加入,CARP 會變得更快速且更有效率。網際網路快取通訊協定陣列會進行查詢來確定快取資訊的位置,這種程序缺乏效率,而且會產生額外的網路流量。網際網路快取通訊協定陣列具有負向的延展性: 加入陣列的伺服器越多,伺服器之間就需要越多查詢來確定位置。

CARP 會自動調整來增加或刪除陣列中的伺服器。雜湊型路由是指當伺服器連線或新增時,只需要最少的 URL 快取重新指派作業。

CARP 可確保快取物件平均散佈在陣列中的所有伺服器之間,或根據您為每個伺服器設定的載入因數散佈。

CARP 的運作方式

CARP 在用戶端與伺服器端雙方提供有效的要求路徑。

用戶端 CARP

用戶端 CARP 的運作方式是讓用戶端選取陣列成員來處理每個個別的 URL,並實作如下:

1.

當使用者在網頁瀏覽器輸入 URL 時,瀏覽器會利用指令碼來選取要使用的陣列成員。如果用戶端和 ISA Server 設定為使用 Web Proxy Automatic Discovery (WPAD) 機制進行自動探索,使用的指令碼可能是由 WPAD 傳回的指令碼,或是從靜態位置擷取的自動設定指令碼 Array.dll?Get.Routing.Script。

2.

由 ISA Server 產生的指令碼會實作 CARP 演算法,此演算法將運算處理 URL 的陣列伺服器優先順序清單。針對指定的 URL,指令碼永遠會傳回相同的伺服器清單,以確保每個 URL 都只在同一個陣列成員上快取。

3.

網頁瀏覽器連線到清單中的第一部伺服器,並要求伺服器擷取頁面。如果第一部伺服器無回應,便會聯繫清單中的下一部伺服器,並反覆進行直到能夠擷取物件為止。

4.

由 ISA Server 產生的指令碼實作 CARP 演算法。指令碼包含陣列設定與目前狀態的相關資訊。指令碼可確保 URL 空間平均分割,並符合陣列成員之間的可設定載入因數。

伺服器端 CARP

用戶端瀏覽器可依照預先設定、循環或隨機的方式來選取要使用的陣列成員。當要求抵達陣列成員時,伺服器會使用要求的 URL 作為引數來執行 CARP 演算法,並決定最適合處理要求的陣列成員。此要求接著轉送到該伺服器。

伺服器 CARP 最常用來當做尚未設定或錯誤設定的用戶端的後援。

設定 CARP

啟用 CARP 時,陣列中所有伺服器上的快取磁碟機將被視為單一的邏輯快取磁碟機。如此一來,快取物件便能有效散佈至成員伺服器中。CARP 的設定方式如下:

啟用陣列層級網路的 CARP,讓 CARP 套用至此網路上要求快取的物件。

您可以選擇設定陣列成員的載入因數。不同的陣列成員可能具有不同硬體且效能不一,因此這項設定很有用。根據預設,每部伺服器的載入因數都設為 100。如果您希望特定伺服器快取較多物件,可以設定更高的載入因數。或者,若要將較少物件快取至伺服器,則設定較低的載入因數。

以 CARP 為基礎的要求會在陣列內部位址上的各個陣列成員間轉送。此位址一開始會設為內部網路上的陣列成員網路介面卡的預設 IP 位址,陣列管理員可以修改此位址。CARP 功能需要將包含陣列之陣列內部位址的網路設定為接聽網頁 Proxy 要求。

您可以針對網站指定 CARP 例外,以便散佈至所有陣列成員的網站,而不是由特定的陣列成員處理。這適用於下列實例:

有些網站要求工作階段持續期間使用相同的 IP 位址。對這些網站,不應啟用 CARP。

您可以針對網站指定 CARP 例外,以便散佈至所有陣列成員的網站,而不是由特定的陣列成員處理。這對於流量過高無法由單一陣列成員處理的網站很有用。例如,您可以新增 Microsoft Update 網站到 CARP 例外清單中,以避免單一的陣列成員在尖峰作業期間超載。

CARP 和 NLB

ISA Server 利用 CARP 和網路負載平衡 (NLB) 來提供 Proxy 容錯移轉功能。請考慮以下情況:

CARP 提供負載平衡和快取散佈,但未提供真正的容錯移轉解決方案。例如,Microsoft Internet Explorer® 預設會快取設定指令碼 (Wpad.dat 或 Isa.routing.script) 50 分鐘,而新的網頁瀏覽器工作階段將先檢查指令碼的快取。如果無法取得指令碼中指定的 ISA Server 陣列成員,用戶端可能仍會嘗試使用快取指令碼連線到此成員。

ISA Server 設定指令碼是以用戶端為主,CARP 實作需視用戶端對於特定伺服器的狀態轉譯而定。相較於以 NLB 伺服器為基礎的解決方案,這樣比較缺乏解決錯誤的彈性。

一併實作 NLB 和 CARP 可確保自動設定指令碼的高度可用性,以提供部分容錯移轉功能。如果已經設定 NLB,您可以指定 NLB 叢集在自動設定指令碼位址中的虛擬 IP 位址,或是指定網域名稱系統 (DNS) 或動態主機設定通訊協定 (DHCP) WPAD 項目中的虛擬 IP 位址。NLB 只會將指令碼要求轉送到可用的陣列成員。指令碼中的用戶端 CARP 演算法接著會確保 URL 要求交由最適合的陣列成員處理。為了提供真正的容錯移轉功能,用戶端可連線到陣列虛擬 IP 位址,而非使用自動設定指令碼中的用戶端 CARP 功能。

若要結合使用 NLB 功能與路由指令碼提供的 CARP 機制,您可以執行下列動作:

將 WPAD 項目設為指向陣列的虛擬 IP 位址。NLB 會使用所有陣列伺服器共用的虛擬 IP 位址。根據 NLB 演算法,每個陣列成員都能選擇傳送至虛擬 IP 位置的封包。

或者,將設定指令碼 URL 設為指向陣列的虛擬 IP 位址,或指向解析為陣列虛擬 IP 位址的 DNS 記錄。請使用下列語法:http://ISA_ArrayName/array.dll?Get.Routing.Script,其中的 ISA_ArrayName 是解析至陣列虛擬 IP 位址的 DNS 項目。

如需 NLB 的詳細資訊,請參閱 Microsoft TechNet 網站中的 <ISA Server 2006 中的網路負載平衡概念>。

CARP 和排定的內容下載工作

CARP 會影響排定的內容下載工作,如下所述:

如果本機主機網路已啟用 CARP,則排定的內容下載工作只會在一個陣列成員上進行。下載內容會根據 CARP 演算法散佈至陣列成員中。

如果本機主機網路已停用 CARP,則排定的內容下載工作會在每個陣列成員上進行。下載內容會在每個陣列成員上複製。

在本機主機網路上啟用 CARP 時,建議您同時也啟用預設內部網路上的 CARP。否則,ISA Server 將無法從快取擷取內部網路用戶端要求的物件,因為這些物件是在處理排定的內容下載工作時快取的物件。


回到頁首回到頁首