− http://httpd.apache.org/docs/2.2/ja/mod/core.html#fileetag
諸事情でバージョン指定、というかrpm指定されたapacheを使っています。で、複数台のwebサーバのローカルディスクにコンテンツを置いているので、(inodeが違うためサーバごとにEtag ヘッダが変わるのが嫌で)FileEtag None を設定したんだけど、相変わらずEtag ヘッダが返ってきてしまう。
FileEtag MTime Size などに設定すると、それぞれレスポンスヘッダのEtag は変更するので、FileEtag 自体が無効なわけではないっぽい。でもFileEtag None にしてもFileEtag All (default) と同じレスポンスヘッダになる。困る。
対処法
- FileEtag Size にする
同じコンテンツをローカルディスクでそれぞれ持っていて、適当なタイミングで同期取ってるのでinodeは異なっているけど、sizeは一緒になる。
Mtime は同期の取り方次第。(更新時刻を保ったままコピーするか、コピーした時刻に更新時刻が上書きされるか: rsync でいうと-t をつけると更新時刻を保持する)
なので Size だけにするのが安全かな。
- Header unset Etag する
mod_headers を使ってResponse Header から Etagを消す
ちなみに sourceで入れたapache 2.2.3 ではFileEtag None を設定すると、ちゃんと反映されてEtag ヘッダは消えていた。んー。