obj.ttl derived?

David Birdsong david.birdsong at gmail.com
Mon Sep 14 21:43:20 CEST 2009


On Mon, Sep 14, 2009 at 12:38 PM, David Birdsong
<david.birdsong at gmail.com> wrote:
> awesome, thanks.  this explains poor cache-hit ratio.
>
> On Mon, Sep 14, 2009 at 12:22 PM, Kristian Lyngstol
> <kristian at redpill-linpro.com> wrote:
>> On Mon, Sep 14, 2009 at 11:57:25AM -0700, David Birdsong wrote:
>>> How is obj.ttl derived when both Expires and max-age is set by the backends?
>>>
>>> We had a case where the backend was setting Expires to 60seconds after
>>> the request and max-age was 5184000.  Additionally in vcl_fetch:
>>>
>>> sub vcl_fetch {
>>>         if (obj.ttl < 9000s) {
>>>                 set obj.ttl = 9000s;
>>>         }
>>> }
>>>
>>> What would obj.ttl be set to given the Expires and max-age contradiction?
>>
>> If s-maxage is set, use that as default, otherwise use max-age as default.
>>
>> If Expires is sooner than the default, use that.
>>
>> So in your example, the ttl should be 60s.
oh, to clarify...

would the stanza in vcl_fetch override the obj.ttl which was set by
the Expire header?
sub vcl_fetch {
       if (obj.ttl < 9000s) {
               set obj.ttl = 9000s;
       }
}

or do I have the order wrong?
>>
>> --
>> Kristian Lyngstøl
>> Redpill Linpro AS
>> Tlf: +47 21544179
>> Mob: +47 99014497
>>
>


More information about the varnish-misc mailing list