On Jul 29, 2007, at 11:14 AM, David Lawson wrote:
On Jul 29, 2007, at 1:47 PM, Michael Pye wrote:
Ricardo Newbery wrote:
latest version. But I'm not sure I should do this via s-maxage
in the
response as this setting might also apply to other proxies
upstream of
me.
If you want other caches to take note of the cache-control max age
headers, but you want your cache to cache for longer then set a
minimum
expiry time in a refresh_pattern for your site. I believe the minimum
expiry time will override the cache-control header.
IIRC, refresh patterns are only applicable to objects that don't
return enough information in the headers to determine the freshness
or staleness of an object, i.e. they don't have a LastModified and
a max-age or expires header. So an object with those headers set
wouldn't be affected by a refresh pattern. You can use the
override expires option in the refresh pattern to change that
behavior. I may be wrong, please correct me if I am.
--Dave Lawson
From the default squid.conf:
# TAG: refresh_pattern
# usage: refresh_pattern [-i] regex min percent max [options]
[snip]
# override-expire enforces min age even if the server
# sent a Expires: header. Doing this VIOLATES the HTTP
# standard. Enabling this feature could make you liable
# for problems which it causes.
[snip]
# ignore-no-cache ignores any ``Pragma: no-cache'' and
# ``Cache-control: no-cache'' headers received from a server.
# The HTTP RFC never allows the use of this (Pragma) header
# from a server, only a client, though plenty of servers
# send it anyway.
#
# ignore-private ignores any ``Cache-control: private''
# headers received from a server. Doing this VIOLATES
# the HTTP standard. Enabling this feature could make you
# liable for problems which it causes.
Again, I'm not sure refresh_pattern will solve my usecase since:
1) The docs above don't explicitly say that any of the options will
override max-age and s-maxage, and
2) It appears that refresh_pattern can only be applied to a regex-
matching URI, whereas I would like to apply it selectively based on
the initial response headers (perhaps a via a Cache-Control extension
or maybe just a custom header like X-Cache-TTL).
In other words, I want to do something like:
acl setTTL rep_header X-Cache-TTL [-1] ^on$
refresh_pattern [-i] setTTL 0 100% 86400 override-expire
or something equivalent. Even better would be if I could use the
value of X-Cache-TTL as sort of a local-only s-maxage.
Is there any way I can do this in Squid?
Ric