2013-03-15 91 views
2

我有一個清漆清洗問題:多個URL清除光油問題

我們的應用程序是非常動態的。 因此,對象A上的事件將生成10.000清除,因爲對象A的信息出現在所有頁面中。

對象A是統計賣家,Page是廣告頁面。

我們通過使用curl從php代碼中調用asynch http PURGE調用varnish來管理此事。

因此,我們將有10000 HTTP調用 的網址無法計算的(所以正則表達式是不是一個選項)

我要問你們,有沒有在清漆任何可能性做一些批次吹掃(HTTP接口)?

如果不是,那麼當模型和事件影響很多頁面時,測試和在非常動態的應用程序中工作的選項是什麼。

在此先感謝 納比勒

回答

2

運行清洗過varnishadm將是你最好的選擇。您可以通過SSH隧道命令(假設您正在處理遠程Varnish服務器)或允許從Web服務器到Varnish服務器的遠程訪問。

您可以輕鬆編寫自己的shell腳本來運行使用varnishadm一批清洗或者你可以看看Thinner,這是一個用做你尋找什麼一個基於Ruby的淨化器。

顯而易見的選擇,你最有可能認爲已經是重新寫你的應用程序,包括對象的URL或自定義標題(例如X-Object: A)一個,所以你可以做依據的禁令在該標頭上:

sub vcl_recv { 
    if (req.request == "BAN") { 
    ban("obj.http.x-object == " + req.http.x-object); 
    } 
} 
+0

是的,禁止通過varnishadm(在光油3)是要走的路。我把它放在一起[在這裏使用它](https://gist.github.com/aderowbotham/5517123) – Ade 2013-07-17 21:25:37