httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Phil Endecott <spam_from_apache_us...@chezphil.org>
Subject [users@httpd] mod_disk_cache difficulties
Date Mon, 15 Nov 2004 19:31:02 GMT
Dear Apache Experts,

I am hoping to be able to use mod_cache and mod_disk_cache to cache the 
output from a slow CGI process and thereby reduce server load and 
increase responsiveness.  The CGI process decodes and generates the 
necessary HTTP headers so that browser caching of this content works. 
So far, however, I have not managed to get Apache to cache this content. 
  Providing a server-side shared cache would give me a significant 
performance boost and I would love to get it working.

I have this in my configuration file:

     CacheRoot "/var/cache/apache2/proxy"
     CacheDefaultExpire 600000
     CacheEnable disk /
     CacheForceCompletion 10
     CacheIgnoreNoLastMod On
     CacheSize 500000

Looking at localhost/server-info I can see that the modules are loaded 
and have been initialised with these configuration settings.  Looking at 
the content of the cache directory I can see that static content is 
being cached (though I plan to disable this).

My CGI program typically sends responses to GET requsts with headers 
like the following:

Vary: Cookie
Cache-Control: must-revalidate
ETag: "ghetuierhgreiu"

When these go directly to the browser, subsequent requests for the same 
URI send an If-None-Match header with the old Etag, and the CGI process 
returns a 304 response unless a change to the database or to the user's 
cookies indicate that the result is now different (and a different ETag 
is required).  This works.

My fear is that when Apache sees the headers that I am generating it 
decides that this content is uncacheable (because of must-revalidate or 
etags).  Could this be true?  Have other users got something like this 
to work?  Are there any debug techniques that I should know about?  Can 
I get any useful trace information from any of these modules?  Can some 
useful header be inserted in the response to indicate if or why it was 
or wasn't cached?

This is with the Debian version of 2.0.52.

Below are some header traces from Mozilla showing an initial fetch 
followed by a second fetch that returns a 304.

Many thanks for any suggestions help than anyone can offer.

Regards,

Phil.




1084485888[809d868]: http request [
1084485888[809d868]:   GET /treefic/work/treefic/test?a=tree_page HTTP/1.1
1084485888[809d868]:   Host: andorra
1084485888[809d868]:   User-Agent: Mozilla/5.0 (X11; U; Linux i686; 
en-US; rv:1.7) Gecko/20040719 Firefox/0.9.1
1084485888[809d868]:   Accept: 
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
1084485888[809d868]:   Accept-Language: en-us,en;q=0.5
1084485888[809d868]:   Accept-Encoding: gzip,deflate
1084485888[809d868]:   Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
1084485888[809d868]:   Keep-Alive: 300
1084485888[809d868]:   Connection: keep-alive
1084485888[809d868]:   Referer: 
http://andorra/treefic/work/treefic/test?a=news_page
1084485888[809d868]:   Cookie: treefic_test_SessionID="67202642"
1084485888[809d868]: ]
1103780784[812bb98]: http response [
1103780784[812bb98]:   HTTP/1.1 200 OK
1103780784[812bb98]:   Date: Mon, 15 Nov 2004 19:21:10 GMT
1103780784[812bb98]:   Server: Apache/2.0.52 (Debian GNU/Linux)
1103780784[812bb98]:   Vary: Cookie
1103780784[812bb98]:   Etag: "b35ffcdaefc52a67d5b3fb2217a2d0b51e8147d9"
1103780784[812bb98]:   Cache-Control: must-revalidate
1103780784[812bb98]:   Keep-Alive: timeout=15, max=100
1103780784[812bb98]:   Connection: Keep-Alive
1103780784[812bb98]:   Transfer-Encoding: chunked
1103780784[812bb98]:   Content-Type: text/html
1103780784[812bb98]: ]


1084485888[809d868]: http request [
1084485888[809d868]:   GET /treefic/work/treefic/test?a=tree_page HTTP/1.1
1084485888[809d868]:   Host: andorra
1084485888[809d868]:   User-Agent: Mozilla/5.0 (X11; U; Linux i686; 
en-US; rv:1.7) Gecko/20040719 Firefox/0.9.1
1084485888[809d868]:   Accept: 
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
1084485888[809d868]:   Accept-Language: en-us,en;q=0.5
1084485888[809d868]:   Accept-Encoding: gzip,deflate
1084485888[809d868]:   Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
1084485888[809d868]:   Keep-Alive: 300
1084485888[809d868]:   Connection: keep-alive
1084485888[809d868]:   Referer: 
http://andorra/treefic/work/treefic/test?a=news_page
1084485888[809d868]:   Cookie: treefic_test_SessionID="67202642"
1084485888[809d868]:   If-None-Match: 
"b35ffcdaefc52a67d5b3fb2217a2d0b51e8147d9"
1084485888[809d868]:   Cache-Control: max-age=0
1084485888[809d868]: ]
1103780784[812bb98]: http response [
1103780784[812bb98]:   HTTP/1.1 304 Not Modified
1103780784[812bb98]:   Date: Mon, 15 Nov 2004 19:21:56 GMT
1103780784[812bb98]:   Server: Apache/2.0.52 (Debian GNU/Linux)
1103780784[812bb98]:   Connection: Keep-Alive
1103780784[812bb98]:   Keep-Alive: timeout=15, max=100
1103780784[812bb98]:   Etag: "b35ffcdaefc52a67d5b3fb2217a2d0b51e8147d9"
1103780784[812bb98]: ]


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message