proxy_cache / fastcgi_cache / uwsgi_cache / ...

Gena Makhomed gmm на csdoc.com
Вс Июл 31 20:07:15 UTC 2011


On 31.07.2011 22:15, Maxim Dounin wrote:

>>>> Нужен ли мне mod_deflate Апача для
>>>> комбинации Apache2+Nginx и включенным
>>>> сжатием у последнего?
>>
>>> Не нужен. И даже вреден, если используется кэширование на nginx.
>>
>> не было бы более эффективным сохранять в cache сразу сжатый
>> через gzip -9 ответ, чтобы потом не тратить время и ресурсы
>> процессора, сжимая этот контент при каждой отдаче клиентам?
>>
>> ...и потом только *меньшей* части клиентов, которым надо отдать ответ
>> в не-сжатом виде - им можно будет на лету контент разжать и отдать.
>
> Кто ж мешает.
>
> http://mdounin.ru/hg/ngx_http_gunzip_filter_module

дело не в том, что кто-то мешает, просто никак не могу понять почему
в nginx сейчас используется по умолчанию менее эффективный алгоритм,
а более эффективный алгоритм можно включить только если сжимать
контент на backend-сервере (apache) и поставить дополнительный
модуль, который сейчас не входит в официальную поставку nginx.

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

и вот еще один совсем не понятный момент, - по умолчанию

gunzip (on|off)
   Default: off

"gunzipping responses returned with Content-Encoding: gzip for clients
that doesn't support it" - по умолчанию выключено, хотя такие клиенты
скорее всего из-за этого не могут понять ответ, сжатый через gzip,
да и поведение nginx будет не соответствовать RFC - клиент не сказал,
что он понимает сжатый ответ, но nginx вернет ему сжатый ответ.

Это примерно то же самое, как если nginx говорит backend-серверу,
что понимает только протокол HTTP версии 1.0, а backend-сервер ему
не верит, и присылает в ответ HTTP 1.1 c Chunked transfer encoding.

С моей точки зрения, логично чтобы этот модуль по умолчанию входил
в состав nginx и по умолчанию чтобы он был включен, "Default: on",
и чтобы по умолчанию в кеше nginx хранился сжатый через gzip контент.

В действительности - все наоборот, значит я не понимаю какие-то нюансы,
почему сейчас и применяются по умолчанию совсем другие значения в nginx.

-- 
Best regards,
  Gena



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