mod_deflate на apache, заставляющий браузер делать 200 вместо 304? - PullRequest
1 голос
/ 29 мая 2009

Я включил mod_deflate на Apache 2 на машине с Ubuntu и заметил, что мой браузер не кэширует сжатые типы файлов при обновлении страницы. Я использовал сетевые настройки firebug для проверки этого и проверки на другом компьютере.

В mod_deflate, если я сжимаю файлы css и js, браузер каждый раз делает запрос.

Если я отключу mod_deflate, браузер получит 304 для файлов css и js. В результате при обновлении страницы загружаются быстрее, если у меня не включена функция mod_deflate.

Может ли это быть вызвано одним из других модулей, которые я включил? Есть ли какая-то настройка кеша в Apache, которую я не настраиваю правильно?

Мой каталог с поддержкой модов: alias.conf
authz_default.load
autoindex.conf
deflate.load
mime.conf
php5.conf
setenvif.load
alias.load
authz_groupfile.load
autoindex.load
dir.conf
mime.load
php5.load
ssl.conf
auth_digest.load
authz_host.load
cgi.load
dir.load
negotiation.conf
rewrite.load
ssl.load
authn_file.load
authz_user.load
deflate.conf
env.load
negotiation.load
setenvif.conf

Ответы [ 2 ]

0 голосов
/ 12 ноября 2009

На самом деле это ошибка Apache в отношении Etags с gzip:

https://issues.apache.org/bugzilla/show_bug.cgi?id=45023

Включение ETags работает, но есть лучший обходной путь:

<IfModule mod_headers.c>
    RequestHeader  edit "If-None-Match" "^(.*)-gzip$" "$1"
    Header  edit "ETag" "^(.*[^g][^z][^i][^p])$" "$1-gzip"
</IfModule>
0 голосов
/ 30 мая 2009

Я думал, что отвечал на это раньше ... но не опубликовал. Извините, если получилось двойное сообщение.

Оказывается, это были etags, которые вызывали проблему. Я не уверен почему, но когда мы отключили etags, браузер начал правильно кэшировать вещи. Поиск файловых тегов в Google.

Теперь, я не уверен, почему отключение etags сделало бы это ... если кто-нибудь знает, пожалуйста, сделайте сообщение в этой теме. Спасибо!

...