Re: сжатие между двумя nginx в цепочке

Maxim Dounin mdounin at mdounin.ru
Thu May 21 13:39:11 UTC 2015


Hello!

On Thu, May 21, 2015 at 10:04:40AM +0300, Phil Kulin wrote:

> Есть такая схема:
> nginx frontend 1  (F1) <-> nginx frontend 2 (F1) <-> apache backend 1 (B1)

В этой схеме оба фронтенда обозначены как F1, что затрудняет 
понимание.  Далее комментарии в предположении, что "nginx frontend 2" 
на самом деле F2.

> (B1) не хочет ничего сжимать, потому что я ему так сказал. И модуль выключил.
> (F2) nginx/1.6.1
> сжимает:
> gzip on;
> gzip_comp_level 9;

Не надо делать так, level 9 - это очень медленно и при этом 
бессмысленно.

> gzip_proxied any;
> gzip_http_version 1.0;
> gzip_types text/plain text/css application/xml application/xhtml+xml
> image/svg+xml application/x-font-woff application/javascript;
> (F1)  nginx/1.0.11
> gzip off;

Имеет смысл обновиться.

> Я хочу, чтобы между F1 и F2 трафик по возможности жался (тащу огромные
> новомодные CSS/JS/HTML килотоннами из-за рубежа). Но если я на (F1)
> включаю gzip, то внезапно контент начинает выдаваться с задержкой...

Если я правильно расшифровал схему выше, то F1 - это внешний 
фронтенд, и соответственно на сжатие между F1 и F2 настройки 
gzip-фильтра на нём не влияют, т.к. жмёт F2.

> Вопрос:
> 1. Есть подводные камни? Я что-то не так делаю? Что посмотреть?

См. выше про gzip_comp_level 9.

Если часть из ресурсов - статика, то лучше их сжать заранее и 
загнать под gzip_static:

http://nginx.org/ru/docs/http/ngx_http_gzip_static_module.html

Следует иметь в виду, что сжатие приводит к потере заголовка 
Content-Length (если он был), и соответственно использованию 
"Transfer-Encoding: chunked" (в HTTP/1.1) или закрытию соединения 
(в HTTP/1.0).

> 2. А можно заставлять между сжиматься принудительно?

Включить gzip на F2, gunzip + "proxy_set_header Accept-Encoding 
gzip;" на F1.

http://nginx.org/ru/docs/http/ngx_http_gunzip_module.html

Потребуется обновить F1 на что-нибудь менее коллекционное.

-- 
Maxim Dounin
http://nginx.org/



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