On 21/10/11 08:44, Kaiwang Chen wrote:
> 2011/10/20 Amos Jeffries:
>> On 20/10/11 20:11, Kaiwang Chen wrote:
>>>
>>> 2011/10/20 Amos Jeffries:
>>>>
>>>> On Thu, 20 Oct 2011 00:39:32 +0800, Kaiwang Chen wrote:
>>>>>
>>>>> 2011/10/19 Amos Jeffries:
>>>>>>
>>>>>> On Wed, 19 Oct 2011 05:15:22 +0800, Kaiwang Chen wrote:
>>>>
<snip>
>>
>>> while 'Cache-Control: max-age=0' as
>>> response header simply marks pre-expiration and Squid fells free to
>>> store a pre-expired response and validates it later when serving next
>>> request?
>>
>> That is correct.
>> You will just need to check the Squid release is one of the recent ones
>> which cache pre-expired content. Some earlier ones did not.
>
> So latest stable should cache pre-expired content? Do you have any
> idea since which release that behavior has been introduced?
It went in in small pieces back across this year. I can't point at a
particular version sorry. And am not yet certain that it works on all
cases yet either.
> I yet
> verify thoroughly, but looks like some version of Resin will carry
> "Cache-Control: no-cache" with each response. It is said that
> "Cache-Control: no-cache" is equal to "Cache-Control: max-age=0"; I
> guess it'd better carry "Cache-Control: no-store" instead, to avoid
> polluting disk cache and to eliminate those I/O, assuming the response
> is dynamic.
>
>>
>>
>>>
>>> Looks like a "Surrogate-Control: max-age=0, revalidate" header
>>> eliminates the need of a filter module in this case? Not sure about
>>> the 'Surrogate-Control: revalidate", since it is not listed in Edge
>>> Architecture Specification, http://www.w3.org/TR/edge-arch, referred
>>> by http://wiki.squid-cache.org/Features/Surrogate.
>>
>> Squid ignores unknown ones presently. If you need, it can be extended.
>> Although, if you go with max-age=0, revalidate is redundant.
>
> How to configure Squid-3.1.16 behaves as a surrogate conforming to
> Edge Architecture Specification, in particular "Surrogate-Control"
> overriding "Cache-Control"? I believe only the following directives
> were related in squid.conf
>
> http_port 80 vhost
> httpd_accel_surrogate_id proxy123.example.com
>
Yes. That is the whole configuration for squid.
> I made the response left origin server carrying both
> "Surrogate-Control: max-age=61" and "Cache-Control: max-age=100", and
> found that Squid revalidated only when the response was already 100
> seconds old, rather than 61 seconds old. Packet capture shows that it
> was not acting as a surrogate because"Surrogate-Control: max-age=61"
> leaked to the client. What am I missing?
The ID parameter on the control header is all you are missing now:
Surrogate-Control: max-age=61;proxy123.example.com
Using the same ID send in Surrogate-Capability to target that surrogate
or group of surrogates.
3.1 may leak to the client anyway, we fixed that in 3.2 IIRC.
Amos
-- Please be using Current Stable Squid 2.7.STABLE9 or 3.1.16 Beta testers wanted for 3.2.0.13Received on Thu Oct 20 2011 - 20:32:35 MDT
This archive was generated by hypermail 2.2.0 : Fri Oct 21 2011 - 12:00:03 MDT