gzip_to_cache

S.A.N nginx-forum at nginx.us
Tue Feb 17 19:13:47 UTC 2015


Gena Makhomed Wrote:
-------------------------------------------------------
> Совершенно не понятно, почему лучше будеть сжимать ответы бекенда
> на стороне nginx, а не на самом бекенде, особенно если учесть, что:
> 
> 1) любая "долгоиграющая" операция (например, компрессия ответа
> бекенда)
> надолго блокирующая воркер процесс nginx создает проблемы в работе
> nginx
> 
> 2) вокреров nginx обычно запускается небольшое число,
> а воркеров php-fpm - обычно значительное большее число.
> 

1. Компрессия gzip, слабо повлияет на время блокировки воркера Nginx, на это
больше влияют другие факторы, скорость соединения с клиентом и т.д, в
процентом соотношении разница будет на уровне погрешности, если конечно
размер контента не очень большой.

2. Да, в php-fpm обычно параллельно работают много воркеров, но эти воркеры
держат коннекты к MySQL, Redis и другим ресурсам, по этому освободить воркер
РНР, означает освободить коннекты, к которым может выстроится очередь других
РНР воркеров.

Скорость компрессии ответа в РНР будет медленней, потому что РНР должен
получить весь буфер вывода сжать его, очистить весь буфер и записать в него
сжатые данные, из-за этого в РНР это работает медленней, плюс небольшой
оверхед на вызове функций врапера zlib.

Nginx получит потребительские преимущества если он сможет сжимать ответы и
класть в кеш уже сжатый ответ.
Сейчас большинство тех кто использует кеширования, не имют сжатия на стороне
бекенда и не используют дополнительный прокси ради сжатия, они просто
включают gzip on; в кеш кладется не сжатый ответ - это занимает больше места
на диске и его амортизацию.

Мы пока что сжимаем ответ на стороне бекенда, но будем использовать сжатия в
Nginx, если он научится класть в кеш сжатый ответ.

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



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