Hi everyone,
I'm running the Apache 2.2.14 .deb on Debian Lenny. Specifically:
Package: apache2.2-bin
Status: install ok installed
Maintainer: Debian Apache Maintainers <debian-apa...@lists.debian.org>
Source: apache2
Version: 2.2.14-5
We have two identical servers behind an LVS balancer. Configurations are
identical, binaries are identical, content is identical. In an effort to
unify ETag responses to improve browser cache behavior, we have explicitly
set 'FileETag':
FileETag Size -INode -MTime
For a given file, the size and modification times are exactly the same on
both servers - the content is static and identical.
However, Apache consistently sends different ETags for the same file.
I have configured both servers to log the ETag headers and queries with
%{ETag}o and %{If-Not-Modified}i . This exposed the fact that Apache builds
ETags with information beyond just the items specified in FileETag, which
apparently varies by server.
The LogFormat below is:
LogFormat "%h %u %t %v \"%r\" %>s %{ETag}o %{If-None-Match}i %{Vary}o %b
\"%{Referer}i\" \"%{User-Agent}i\"" mylogformat
On server 1, the access logfile entry is:
x.y.10.187 - [06/Jul/2010:14:25:37 -0400] XXXXXXXXXXX "GET
/js/json.11874.js HTTP/1.1" 200 \"d1b;48a6d3c9049c0\"
\"d1b;48a6d3c810780\" - 3355 "-" "Mozilla/5.0 (X11; U; Linux x86_64;
en-US; rv:1.9.2.6) Gecko/20100628 Ubuntu/10.04 (lucid) Firefox/3.6.6"
On server 2, the access logfile entry is:
x.y.10.187 - [06/Jul/2010:14:25:39 -0400] XXXXXXXXXXX "GET
/js/json.11874.js HTTP/1.1" 200 \"d1b;48a6d3c810780\"
\"d1b;48a6d3c9049c0\" - 3355 "-" "Mozilla/5.0 (X11; U; Linux x86_64;
en-US; rv:1.9.2.6) Gecko/20100628 Ubuntu/10.04 (lucid) Firefox/3.6.6"
You can see that the sole FileETag directive (Size) is being set properly,
and is consistent between servers ("d1b"), however there is an additional
string appended to the ETag string which is confusing the user agent.
How do I get these in sync?
I tracked this string down to some references to "vlv" in
modules/http/http_etag.c and to "set_vlist_validator" in
modules/mappers/mod_negotiation.c, and I suspect this has to do with
Variances, but I'm at a loss as the server configurations and content are
identical.
Thanks,
Josh
---------------------------------------------------------------------
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-unsubscr...@httpd.apache.org
" from the digest: users-digest-unsubscr...@httpd.apache.org
For additional commands, e-mail: users-h...@httpd.apache.org