Назад | Перейти на главную страницу

Включить gzip на Nginx

Да, я знаю, что есть много других вопросов, которые кажутся точно такими же. Думаю, я, должно быть, всех их посмотрел. Дважды. В отчаянии я добавляю еще один на тот случай, если проблема в моей конкретной конфигурации. Потерпите меня.

Во-первых, вопрос: что мне нужно сделать, чтобы сжатие gzip заработало?

У меня установлен сервер Ubuntu 12.04 с nginx 1.1.19. Nginx был установлен со следующими пакетами:

nginx
nginx-common
nginx-full

В http блок моего nginx.conf выглядит так:

http {
  include /etc/nginx/mime.types;

  access_log /var/log/nginx/access.log;

  sendfile on;

  keepalive_timeout  65;
  tcp_nodelay        on;

  gzip  on;
  gzip_disable "msie6";

  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;
}

И PageSpeed, и YSlow сообщают, что мне нужно включить сжатие. Я вижу, что заголовки запроса указывают Accept-Encoding:gzip,deflate,sdch, но в заголовках ответа нет следствия Content-Encoding заголовок.

Я пробовал различные другие значения конфигурации (gzip_vary on, gzip_http_version 1.0и т. д.), но без радости.

Насколько мне известно, я могу только предположить, что nginx был скомпилирован с поддержкой сжатия, но если есть способ проверить это, я бы хотел знать.

Если кто-нибудь увидит что-то, чего мне не хватает, или может предложить дальнейшую отладку, сообщите мне. Я не системный администратор и новичок в Nginx, поэтому исчерпал все, что мог придумать или прочитать.

Спасибо.

Если nginx не жалуется на gzip on; находясь в вашем файле конфигурации, то он был скомпилирован с помощью модуля gzip. По умолчанию он сжимает только ответы text / html. Вам необходимо настроить gzip_types если вы хотите сжать что-нибудь еще (css, js и т. д.).