Добрые сутки!
Образил уже весь рунет, но либо такая проблема есть только у меня, либо всем на нее пофиг. Допустим, у нас есть proxy_cache или fastcgi_cache. Заставим его закешировать тестовую страницу, для чего зайдем на нее из браузера, поддерживающего сжатие gzip. В кеше на диске видно, что страница сжата и присутствуют соответствующие этому заголовки.
А теперь зайдем на ту же страницу браузером без поддержки gzip (хоть тот же wget). Страница отдается из кеша, кодированной (!!!), вместо текста - кракозябры.
Временно я решил эту проблему вот так:
if ($http_user_agent ~ "MSIE [4-6]\.|Safari|Konqueror") {
# В этих браузерах имеются баги при обработке gzip-сжатых файлов с длинными URL-ами.
set $no_gzip 1;
}
if ($http_accept_encoding !~ "gzip") {
set $no_gzip 1;
}
proxy_cache my_cache;
proxy_cache_key "$no_gzip|$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
Но сами понимаете, обидно кешировать 2 одинаковые страницы. Что делать и как быть? gzip_disable не помогает.