httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jdwy...@joshua.raleigh.nc.us
Subject [users@httpd] vlist_validator problem in ETags header
Date Tue, 06 Jul 2010 19:23:33 GMT
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-apache@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-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