I wrote:
>> I have a relatively slow CGI application that I'd like to accelerate 
>> by caching its output.  So far I've tried Apache's mod_disk_cache and 
>> Squid (I'm using the Debian version of 2.5.7) and neither works, I 
>> believe because they both consider the CGI output to be uncacheable.  
>> I'm hoping that someone on this list can offer some advice about how 
>> or if Squid can be made to work in this scenario.
I have now progressed a little; some clues in the Apache mod_cache 
source code pointed me to RFC2616 section 13.9 which says that, even 
though you use the nice HTTP 1.1 functions to declare the cacheability 
of your content, anything with a "?" in the URL must not be cached 
because that is "traditional".  Aaarrgghh!!!
To work around this I have added an "Expires: (current time)" header, 
and Apache mod_cache does now cache the content and revalidate it.
Henrik Nordstrom asked:
 > What does the cacheability check engine say about the results?
Having added the redundant Expires: header to keep mod_cache happy the 
cacheability engine says:
This object will be fresh for 2 sec. The object had changed when 
validation was attempted. Because of the must-revalidate header, all 
caches will strictly adhere to any freshness information you set. It 
doesn't have a Content-Length header present, so it can't be used in a 
HTTP/1.0 persistent connection. The clock on this Web server appears to 
be set incorrectly; this can cause problems when calculating freshness.
(It's wrong and I'm right about the clock setting.)
> And make sure you have not explicitly denied caching by the no_cache 
> directive.
Nope.
> The recommended squid.conf for example does not cache URLs 
> with a ? in them even if the server returns caching information.
I removed that.
> Squid-2.5 does not support ETag, unfortunately (only Vary).
OK, well that would explain it.
> There is a 
> patch at http://devel.squid-cache.org/ which adds ETag support to 
> Squid-2.5.
I'll investigate that if necessary.  At the moment it looks as if 
Apache's mod_cache might do what I need.
> The "must-revalidate" may also be a bit troublesome, and with "Vary: 
> Cookie" it should not really be needed, should it?
The page must still be revalidated even if the cookie has not changed, 
so I think both are needed - unless there is something in RFC2616 that 
adds an additional dependency.
Regards,
Phil.
Received on Tue Nov 16 2004 - 17:28:07 MST
This archive was generated by hypermail pre-2.1.9 : Wed Dec 01 2004 - 12:00:01 MST