Настройка proxy cache + gzip

SenatoR nginx-forum at nginx.us
Wed Nov 28 09:23:12 UTC 2012


Добрые сутки!

Образил уже весь рунет, но либо такая проблема есть только у меня, либо всем
на нее пофиг. Допустим, у нас есть 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 не помогает.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,233316,233316#msg-233316



Подробная информация о списке рассылки nginx-ru