Включить 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, поэтому я исчерпал все, что могу придумать или прочитать.
Благодарю.
1 ответ
Если nginx не жалуется gzip on;
Находясь в вашем файле конфигурации, он был скомпилирован с помощью модуля gzip. По умолчанию он сжимает только текстовые /html ответы. Вам нужно настроить gzip_types, если вы хотите сжать что-нибудь еще (css, js и т. Д.).