配置 Edge Side Include (ESI)快取

來源:互聯網
上載者:User
2008-10-29 15:01

WebSphere Application Server

http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.multiplatform.doc/info/ae/ae/tdyn_esiedgecaching.html

Web 服務器外掛程式包含內建 ESI 處理器。ESI 處理器能快取整個頁面及片段,提供較高的快取命中率。ESI 處理器實現的快取是記憶體快取,而不是磁碟快取,因此,在重新啟動 Web 服務器時,不會儲存快取條目。

關於本任務

通過 plugin-cfg.xml 檔案配置 Edge Side Include(ESI)。

當請求由 Web 服務器外掛程式接收時,它發送到 ESI 處理器,除非禁用 ESI 處理器。預設情況下,它已啟用。如果發生快取不命中,Surrogate-Capabilities 頭添加到請求,而請求轉寄到 WebSphere Application Server。如果在應用程式伺服器中啟用 servlet 快取,而且響應是邊緣可快取的,那麼應用程式伺服器在響應中將 Surrogate-Control 頭返回給 WebSphere Application Server 外掛程式。

Surrogate-Control 回應標頭的值包含 ESI 處理器用於產生快取標識的規則列表。然後,響應儲存到 ESI 快取中,使用快取標識作為密鑰。對於響應主體中的每個 ESI include 標記,處理新請求,以致每個嵌套的 include 導致快取命中或另一個請求轉寄到應用程式伺服器。當所有嵌套的 include 已處理時,頁面會組裝並返回到客戶機。

ESI 處理器可通過 WebSphere Web 服務器外掛程式設定檔 plugin-cfg.xml 進行配置。以下是此檔案開始處的樣本,其說明 ESI 配置選項。
<?xml version-"1.0"?>
<Config>
<Property Name="esiEnable" Value="true"/>
<Property Name="esiMaxCacheSize" Value="1024"/>
<Property Name="esiInvalidationMonitor" Value="false"/>
過程
  • 第一個選項 esiEnable 可用於通過將值設定為 false,以禁用 ESI 處理器。預設情況下,ESI 已啟用。如果禁用 ESI,那麼忽略其他 ESI 選項。
  • 第二個選項 esiMaxCacheSize 是快取的最大大小,以 1K 位元組單位計。快取的預設最大大小為 1 MB。如果快取已滿,那麼從快取中逐出的第一個條目是最接近到期的條目。
  • 第三個選項 esiInvalidationMonitor 指定 ESI 處理器是否從應用程式伺服器接收失效。當使用遵循線程技術模型的 Web 服務器並且僅啟動一個進程時,ESI 能夠很好地工作。當啟動了多個進程,每個進程快取各自響應並且不共用快取。這可能導致系統的記憶體被 ESI 處理器完全耗盡的情況。從 ESI 快取除去條目的方法有三種:第一種,發生條目的截止逾時;第二種,可清除條目,以將空間留給較新的條目;或者第三種,應用程式伺服器可為條目組發送顯式失效。為了啟用第三個機制,esiInvalidationMonitor 屬性必須設定為 true,DynaCacheEsi 應用程式必須安裝在應用程式伺服器上。DynaCacheEsi 應用程式位於 installableApps 目錄中,而且名為 DynaCacheEsi.ear。如果 ESIInvalidationMonitor 屬性設定為 true,但是未安裝 DynaCacheEsi 應用程式,那麼 Web 服務器外掛程式中將發生錯誤,而且請求將失敗。
  • 在分布式平台上,會通過 CacheMonitor 應用程式來監視 ESI 處理器的快取。為了讓 ESI 處理器快取在 CacheMonitor 中可視,必須按上述的那樣安裝 DynaCacheEsi 應用程式,而且必須在 plugin-cfg.xml 檔案中將 ESIInvalidationMonitor 屬性設定為 true。
  • 當 WebSphere Application Server 用於維護待用資料(如應用程式伺服器上的映像和 HTML)時,URL 也在ESI 處理器中進行快取。此資料具有預設逾時 300 秒。您可通過將屬性 com.ibm.servlet.file.esi.timeOut 添加到 JAVA 虛擬機器(JVM)命令列參數,來更改逾時值。 以下樣本顯示如何在待用資料(在外掛程式中進行快取)上設定一分鐘逾時:
    -Dcom.ibm.servlet.file.esi.timeOut=60

    有關配置備用 URL 的資訊,請參閱配置備用 URL 。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.