Включить GZIP для файлов CSS и JS на сервере NGINX для Magento

Мне нужно включить сжатие gzip на сервере nginx. Как я заметил из инструментов firfox firebug NET, я обнаружил, что html файл сжат gzip. Но не файлы javascript и файлы CSS.

Я уже проверял Mime.types и файл конфигурации nginx /etc/nginx/ngnix.conf и не обнаружил никаких проблем. все еще неспособный видеть сжатие css и javascript Gzip. Мои записи NGINX.conf приведены ниже

gzip on;
gzip_disable "msie6";

gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

Ответ 1

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

http://pastie.org/10870547

gzip on;
gzip_disable "msie6";

gzip_comp_level 6;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_types
    text/plain
    text/css
    text/js
    text/xml
    text/javascript
    application/javascript
    application/json
    application/xml
    application/rss+xml
    image/svg+xml;

Этот конфиг был протестирован через tools.pingdom.com.

Ответ 2

Вы можете найти пример конфигурации из HTML- кода html5.

  # Enable Gzip
  gzip  on;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_min_length 1100;
  gzip_buffers     4 8k;
  gzip_proxied any;
  gzip_types
    # text/html is always compressed by HttpGzipModule
    text/css
    text/javascript
    text/xml
    text/plain
    text/x-component
    application/javascript
    application/json
    application/xml
    application/rss+xml
    font/truetype
    font/opentype
    application/vnd.ms-fontobject
    image/svg+xml;

  gzip_static on;

  gzip_proxied        expired no-cache no-store private auth;
  gzip_disable        "MSIE [1-6]\.";
  gzip_vary           on;

Ответ 3

Если некоторые из ваших файлов сжаты, а некоторые нет, то ваш gzip работает, но вы, возможно, пропустили определение в gzip_types. Например, файлы javascript могут возвращать в заголовках любой из следующих типов:

  • приложение /JavaScript
  • применение/х-Javascript
  • текст /JavaScript

Чтобы сжать все файлы javascript, все три определения должны быть включены в gzip_types.

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

Ответ 4

Являются ли ваши записи gzip в рамках "области видимости" nginx, которые js, css и т.д. активы обслуживаются? Я спрашиваю, потому что, если вы используете какую-то фреймворк, иногда существуют разные блоки местоположения {...}, которые обрабатывают запросы html и активы.

Также, когда вы тестируете в браузере, убедитесь, что вы делаете жесткое обновление, чтобы заставить сервер дать вам "новую копию" того, что вы смотрите.

Наконец, вы можете использовать gzip_types *, чтобы все могло быть gzip. Возможно, кто-то еще может перезвонить, если это хорошая практика или нет.

Ответ 5

Для сжатия SVG эта строка верна:

image/svg+xml svg svgz;