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@xxxxxxxxxxxxxxxx> Source: apache2 Version: 2.2.14-5We 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 -MTimeFor 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@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx