Re: If refresh_pattern only extends expiration, how to force time-to-live in Squid code?

From: Guy Bashkansky <guybas_at_gmail.com>
Date: Wed, 2 Sep 2009 12:42:34 -0700

(Resending, first time accidentally sent with HTML formatting, bounced)

Now I see the Expires header having a value in the past, which may
confuse clients and caches further down the chain.
Scenario: origin returns max-age=900 (15 min) and refresh_pattern
overrides expire to 24 hours, what do the headers to the client look
like?

On the first request (cache-miss), the Expires header is not added to
the response sent to client.
On subsequent cache-hits the Expires header is added to the response
sent to client. (Why this artifact?)

The Expires header is set to time the object was received from the
origin plus the value in the Max-age header.
This results in the Expires header having a value in the past when the
cached object is older than the Max-age.

How to fix it best? (in my local version)

Since my trouble is the Expires header having a value in the past, I
consider suppressing the Squid artifact of inserting an Expires
header.
Is there a Squid configuration ability to do so? If not, what would
be the right way to do it in my local code branch?

On Fri, Aug 28, 2009 at 6:12 PM, Guy Bashkansky <guybas_at_gmail.com> wrote:
>
> Henrik,
> Thanks, it works!
> Guy
>
> On Thu, Aug 27, 2009 at 2:00 AM, Henrik Nordstrom <henrik_at_henriknordstrom.net> wrote:
>>
>> ons 2009-08-26 klockan 18:17 -0700 skrev Guy Bashkansky:
>>
>> > If indeed refresh_pattern only extends expiration, I would like to
>> > develop a feature that enforces an exact time-to-live (per URL) in my
>> > local branch of Squid code.
>>
>> See the refreshStaleness() function. Should be sufficient to move the
>> max age check up above the expires check.
>>
>> Regards
>> Henrik
>>
>

---------- Forwarded message ----------
From: Guy Bashkansky <guybas_at_gmail.com>
Date: Wed, Aug 26, 2009 at 6:17 PM
Subject: If refresh_pattern only extends expiration, how to force
time-to-live in Squid code?
To: squid-dev_at_squid-cache.org

I've tried to set an exact time-to-live (override origin cache
control) in Squid (2.4 STABLE6) configuration by refresh_pattern,
e.g.:

refresh_pattern 30_minutes_cache_control_url 15 0% 15
override-expire ignore-max-age

Observed: URL is matched (in log), but objects still cached for 30
minutes, rather than for 15 minutes, as hoped.

If indeed refresh_pattern only extends expiration, I would like to
develop a feature that enforces an exact time-to-live (per URL) in my
local branch of Squid code.

What would be the most reasonable way to do this? How can I force
objects to expire from cache after a given time?

Thanks.
Received on Wed Sep 02 2009 - 19:50:32 MDT

This archive was generated by hypermail 2.2.0 : Thu Sep 03 2009 - 12:00:02 MDT