2017-08-26 38 views
1

我正在嘗試使用清漆緩存rpms和其他巨型二進制文件。我所期望的是,當一個對象在緩存中過期時,清漆會向後端發送一個帶有If-Not-Modified的請求,然後假定該對象沒有改變,varnish將刷新本地緩存對象上的ttl無需下載新的。我編寫了一個測試後端來生成特定的請求(設置小的max-age和whatnot,以及查看頭文件清單發送),但我從來沒有得到任何其他的東西,然後完全獲取。如果未修改從未發送。我的VCL基本上是默認的VCL。我試着玩弄設置小ttl /恩,但從來沒有任何有趣的行爲。清漆永不發送如果未修改

清漆甚至能夠做我想要的東西嗎?如果有的話,有人做了類似的事情,可以給小費?

+0

在設置小型TTL時,請查看https://jakearchibald.com/2016/caching-best-practices/,瞭解如何緩存內容的一些好主意。 –

回答

0

對象過期時發送給後端的請求是Varnish從客戶端接收到的請求。

因此,當您測試您的設置時,您是否發送If-Not-Modified標題在您的要求清漆?

看看https://www.varnish-software.com/wiki/content/tutorials/varnish/builtin_vcl.html看看VCL內置的是什麼。

vcl_backend_fetch下,如果高速緩存中沒有對象,將會調用它,您可以看到圍繞舊對象沒有複雜的邏輯,它只是按原樣傳遞請求。