0
我在清漆實例前面使用負載平衡器(LB)。只要說LB正在監聽Port:80,並且在不同的端口上有多個Varnish實例。在多個清漆實例上清洗對象
即我有一個連接到4個清漆實例的LB,並且LB以循環方式執行。
現在,我該如何清除清漆上的物體並保持清漆不同實例之間的一致性。
我在清漆實例前面使用負載平衡器(LB)。只要說LB正在監聽Port:80,並且在不同的端口上有多個Varnish實例。在多個清漆實例上清洗對象
即我有一個連接到4個清漆實例的LB,並且LB以循環方式執行。
現在,我該如何清除清漆上的物體並保持清漆不同實例之間的一致性。
對此的簡單解決方案是對您知道需要清除的內容使用低TTL。用10秒的TTL,可能根本不需要發送清除。以一些後端請求爲代價解決問題。除非你的後端速度很慢,或者你的流量水平在100/1000s /秒,否則這將工作得很好。
另一個稍微骯髒的解決方案,考慮到您的LB實際上正在循環,只是讓清除過程發送PURGE請求n次。背後每個清漆的要求。這當然有點脆弱,因爲當你添加更多的服務器時,你可能會(/將會)忘記調整它。
如果你真的想讓它變髒,你可以在VCL中重新啓動並鏈接過程。讓Varnish#1在清除自己的緩存後,使用Varnish#2作爲PURGE請求的後端。 #2做同樣的事情並將它傳遞給#3,沖洗並重復。這裏是龍,除非你對VCL非常熟悉,否則不要這樣做。