Preventing Caching in Varnish Based on Backend Response Header

Guillaume Quintard guillaume.quintard at gmail.com
Tue Jun 11 17:05:09 UTC 2024


Hi,

Don't worry too much about it. Uncacheable objects take a minimal amount of
space in the cache, and if an object suddenly becomes cacheable, you can
insert it in the cache, pushing the uncacheable version out.

I'd say keep 24 hours and worry about big stuff :-)

Cheers,

-- 
Guillaume Quintard


On Tue, Jun 11, 2024 at 4:22 AM Uday Kumar <uday.polu at indiamart.com> wrote:

> May I know if there is any way to find the best possible TTL?
> I meant to ask for uncacheable objects
>
> *Thanks & Regards,*
> *Uday Kumar*
>
>
> On Tue, Jun 11, 2024 at 4:11 PM Uday Kumar <uday.polu at indiamart.com>
> wrote:
>
>> Hello Guillaume,
>> We have made required changes at our end, but we have doubt on giving
>> suitable TTL for uncacheable objects
>>
>> if (beresp.http.Cache-Control ~ "no-cache") {
>>         set beresp.ttl = *doubt*;
>>         set beresp.uncacheable = true;
>> }
>>
>> FYI;
>> we have ttl of 24hrs for normal objects which are cacheable
>>
>> May I know if there is any way to find the best possible TTL?
>>
>> *Thanks & Regards,*
>> *Uday Kumar*
>>
>>
>> On Tue, May 28, 2024 at 7:07 PM Uday Kumar <uday.polu at indiamart.com>
>> wrote:
>>
>>> Hello Guillaume,
>>> Great to know about this, it should work for us!
>>> will check this out
>>>
>>> *Thanks & Regards,*
>>> *Uday Kumar*
>>>
>>>
>>> On Tue, May 28, 2024 at 5:53 PM Guillaume Quintard <
>>> guillaume.quintard at gmail.com> wrote:
>>>
>>>> Hi Uday,
>>>>
>>>> Sure, the classic practice will do nicely:
>>>>
>>>> sub vcl_backend_response {
>>>>     if (beresp.http.that-specific-header) {
>>>>         # TTL should match the time during which that header is
>>>> unlikely to change
>>>>         # do NOT set it to 0s or less (
>>>> https://info.varnish-software.com/blog/hit-for-miss-and-why-a-null-ttl-is-bad-for-you
>>>> )
>>>>         set beresp.ttl = 2m;
>>>>         set beresp.uncacheable = true;
>>>>         return (deliver);
>>>>     }
>>>> }
>>>>
>>>> The main trick here is beresp.uncacheable, you do not have to return
>>>> immediately if you still have modifications/checks to do on that response.
>>>>
>>>> Would that work for you?
>>>>
>>>> --
>>>> Guillaume Quintard
>>>>
>>>>
>>>> On Tue, May 28, 2024 at 4:55 AM Uday Kumar <uday.polu at indiamart.com>
>>>> wrote:
>>>>
>>>>> Hello all,
>>>>>
>>>>> We need to prevent caching in Varnish based on a specific header from
>>>>> the backend.
>>>>>
>>>>> Could you please suggest the best approach to achieve this?
>>>>>
>>>>>
>>>>> *Thanks & Regards,*
>>>>> *Uday Kumar*
>>>>> _______________________________________________
>>>>> varnish-misc mailing list
>>>>> varnish-misc at varnish-cache.org
>>>>> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
>>>>>
>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20240611/cae573ed/attachment-0001.html>


More information about the varnish-misc mailing list