2013-07-12 50 views
1

一個包含5個esi的頁面:include,每個src都有一個相同的路徑,其中不同的參數如'm.htm?p = 1'&'m.htm?p = 2',但我使用了varnishlog並只能看到1個esi請求所以不要在一個以上的esi中使用同一條路徑:include標籤?清漆ESI必須採取不同的src路徑?

回答

0

Varnish默認支持n esi:每個資源包含指令,每個客戶端請求最多有5個ESI遞歸級別,但這是可配置的。下面是步驟,我想借此調試列表:

  1. 檢查,以確保有從清漆發送到您的客戶端的響應沒有<esi:include />標籤。然後確保您的後端正在按照您預期的方式直接觸發<esi:include />標籤。光油只有存在時纔會受到責備,而光油不能解析它們。確保沒有錯別字等,如<es:include .../>
  2. 請求esi包含標籤的src URL直接到您的後端服務器。服務器出錯了嗎?默認行爲是忽略ESI請求上的錯誤,並且我不知道varnishlog是否會在這種情況下報告它們。
  3. 檢查爲esi片段返回的響應頭。如果它們也是可緩存的,varnish將不會再從後端請求它們,直到它們過期並且可能不會將它們記錄在varnishlog中(請查看文檔)。
  4. 確保具有不同查詢字符串的請求散列到不同的緩存鍵。如果您的VCL通過忽略查詢字符串來嘗試提高命中率,那麼您的ESI方案將不起作用,因爲每個標籤在邏輯上都包含相同的緩存資源。

不知道你是否只關心varnishlog的輸出,或者實際上是否有頁面本身出現esi失敗的症狀,這些都是我可以想到的。

相關問題