Apache Etags, нужна помощь?

В настоящее время мы не используем заголовки Expire, я собирался порекомендовать это, но заставлять нашу большую команду разработчиков / бизнес менять свои методы и переименовывать статические файлы с каждым новым выпуском будет нелегко получить обновленные файлы.

Я запустил YSlow, и мы получили F для Etags: "Есть 24 компонента с неправильно настроенными ETag". Apache httpd.conf не имеет Etags, настроенных вручную, поэтому кажется, что мы используем настройки по умолчанию. (FileETag INode MTime Size). Когда я захожу на наш сайт и нажимаю "Обновить", я вижу, что Etags, кажется, работают довольно хорошо

Один пример изображения: If-Modified-Since: Sat, 23 Jul 2011 02:05:28 GMT If-None-Match: "21246-eb05-4a8b30415ea00" Cache-Control: max-age = 0

HTTP / 1.1 304 Дата изменения: вторник, 06 сентября 2011 г. 20:59:29 GMT Сервер: IBM_HTTP_Server Соединение: Keep-Alive Keep-Alive: timeout = 6 Etag: "21246-eb05-4a8b30415ea00"

1) Я вижу "304 Не изменено" для файлов изображений,js,html и т. Д. На нашей целевой странице. Почему Ислоу говорит, что у нас есть некоторые неправильно настроенные Etags, когда все они настроены на одну и ту же конфигурацию Apache по умолчанию? В отчете YSlow упоминаются те же типы файлов.

2) У нас есть балансировщик нагрузки F5 между несколькими веб-серверами Apache, мы используем липкие биты, поэтому я думаю, что индекс Etag Apache не слишком беспокоит нас. Но если пользователь вернется завтра и подключится к другому веб-серверу, мы потеряем правильную опцию кэширования, потому что они будут другими? Должны ли мы изменить httpd.conf и удалить переменную inode Etag со всех веб-серверов?

Извините за длину! Спасибо

2 ответа

1) Может быть, сообщение не о статических файлах, а о другом доставленном контенте, который не имеет ETag (например, страницы PHP, вывод CGI и т. Д.)?

2) Да, вы должны удалить индекс из тега, а также убедиться, что файлы имеют одинаковую метку времени на всех серверах.

C. Рэмсиер прав. Вот конфиг, который я использую, чтобы YSlow остался доволен:

<Directory /path/to/files>
  FileETag MTime Size
  ExpiresActive On
  ExpiresDefault "access plus 1 week"
  ExpiresByType text/html "access plus 1 week"
  ExpiresByType text/css "access plus 1 week"
  ExpiresByType text/javascript "access plus 1 week"
  ExpiresByType image/gif "access plus 1 month"
  ExpiresByType image/jpg "access plus 1 month"
  ExpiresByType image/png "access plus 1 month"
</Directory>

Убедитесь, что у вас все в порядке с кэшированием страниц в течение 1 недели. Если у вас есть, например, блог, который обновляется ежедневно, вышеуказанная настройка приведет к тому, что список сообщений будет кэшироваться в течение 1 недели. В этом случае вы можете использовать ExpiresDefualt "access"

Другие вопросы по тегам