Nginx - настройка сжатия (компрессии): полное руководство

Поділитися
Вставка
  • Опубліковано 18 вер 2024
  • Возвращаемся к основам - подробно разберём вопрос настройки сжатия в Nginx. Это базовая технология для ускорения загрузки сайтов, но как всегда есть много ньюансов. В этом видео посмотрим на параметры сжатия gzip и brotli, поговорим о различии динамического и статического сжатия, о выборе степени сжатия для основных применений.
    Ссылка на конфиг: github.com/Nic...
    На этом канале мы создаём максимально полезные видео по вопросам ускорения сайтов, веб-производительности и клиентской, а также серверной оптимизации.
    Профессионально занимаясь ускорением сайтов, мы накопили значительный опыт, которым готовы поделиться с нашими зрителями и подписчиками. Так что присоединяйтесь, будет интересно!
    Профессиональное ускорение сайтов: www.methodlab....
    Тестирование скорости сайтов: xn--80aanaoicz...--p1ai/
    Сервис оптимизации картинок: www.fotorubka.ru/
    Наш второй канал "Поддержка сайтов": / @site_support
    Группа "Ускорение сайтов" в VK: sitespe...
    Метод Лаб в VK: methodlab
    Метод Лаб в Facebook: / methodlab.ru
    Метод Лаб в Twitter: / sitespeedup

КОМЕНТАРІ • 32

  • @ЕвгенКабанов-ц2е
    @ЕвгенКабанов-ц2е 4 роки тому +2

    Спасибо за информацию о сжатии. Для меня новичка это очень важно

  • @AndersonSilva-dg4mg
    @AndersonSilva-dg4mg 4 роки тому +3

    А вот Docker, Kubernetes контейнеризация в общем влияет как-то на производительность, скорость сайта?

    • @NickLavlinsky
      @NickLavlinsky  4 роки тому +3

      Не должна, там потери измеряются в единицах процентов. Это же просто группа процессов внутри ОС, расходы только на контроль ресурсов и виртуальные сетевые интерфейсы.

  • @wcodes-kk2pr
    @wcodes-kk2pr 4 роки тому +2

    конфигов нет....

    • @NickLavlinsky
      @NickLavlinsky  4 роки тому +1

      Добавил в описание, смотрите.

  • @ДануфСвияга
    @ДануфСвияга 4 роки тому +2

    Скажите, пожалуйста, на счет одного момента: в конфиге nginx.conf сперва указан включенный gzip, затем чуть ниже - включенный brotli. Так и принято указывать сразу два метода (условно говоря, это работает по принципу - что ниже то и применится или как) или достаточно оставить лишь brotli?

    • @NickLavlinsky
      @NickLavlinsky  4 роки тому +1

      При запросе браузер показывает, какие типы сжатия поддерживает. Nginx на этой базе отдаёт в наиболее эффективном варианте, из поддерживаемых. Что вверху или внизу в конфигурации никак не влияет.

    • @ДануфСвияга
      @ДануфСвияга 4 роки тому +1

      @@NickLavlinsky Nginx - умница) спасибо за ответы.

    • @ДануфСвияга
      @ДануфСвияга 4 роки тому +2

      @@NickLavlinsky Скажите, пожалуйста, нужно ли заранее подготавливать и ложить рядом с оригиналами файлы типа some-script.js.br и some-style.css.br? или же это делается самим сервером автоматом на лету?

    • @NickLavlinsky
      @NickLavlinsky  4 роки тому +1

      @@ДануфСвияга Да, нужно подготоваливать заранее, так можно получить максимальную степень компресии и не грузить сервер сжатием на лету.

    • @ДануфСвияга
      @ДануфСвияга 4 роки тому +1

      @@NickLavlinsky Cкажите, пожалуйста, если уже был установлен nginx, то чтобы добавить поддержку brotli - нужно ли пересобирать обязательно nginx+brotli или же можно brotli отдельно доустановить сверху?

  • @Devof-n9i
    @Devof-n9i 4 роки тому +2

    Большое спасибо за урок. Мне как дилетанту пришли в голову, очевидные мысли, что статичный лендинг было бы удобно сжать заранее и отдавать в готовом виде и предполагал, что такое возможно и тут ваш урок подоспел. Немного новогоднего елея на самолюбие (что оказался прав). Еще раз, Спасибо!
    И вопрос не по этой теме, но по существу: правильно ли я понимаю поисковики кэшируют у себя страницы и отдают их без обращение к моему серверу, если мой Nginx и html ему (поисковику) об этом сообщают? Как это эффективно делать?

    • @NickLavlinsky
      @NickLavlinsky  4 роки тому +1

      Пожалуйста, пользуйтесь. Если есть идеи по новым видео (что нужно разобрать) - пишите.

    • @Devof-n9i
      @Devof-n9i 4 роки тому +1

      Спасибо. Я немного поправил свой комментарий выше. Дополнил благодарность вопросом))

    • @NickLavlinsky
      @NickLavlinsky  4 роки тому +1

      По вопросу: нет, не правильно. Поисковики отправляют пользователя вам на сайт, а не показывают сайт через себя.

    • @Devof-n9i
      @Devof-n9i 4 роки тому +2

      Понял. Спасибо.

  • @manjuan1505
    @manjuan1505 2 роки тому +1

    У меня Freebsd 11. Из пакетов установил brotli, затем в конфиг nginx прописал те же строки что и у Вас, перезапускаю nginx и получаю ответ: nginx: [emerg] unknown directive "brotli_static" in /usr/local/etc/nginx/nginx.conf:46
    Что я сделал не так, подскажите пожалуйста?

    • @NickLavlinsky
      @NickLavlinsky  2 роки тому

      Вы либо не собрали, либо не подключили модуль brotli_static.

    • @manjuan1505
      @manjuan1505 2 роки тому

      @@NickLavlinsky то что собрал это 100%, а в каком месте его подключить? Где-то что-то надо прописать, подскажите пожалуйста?

    • @NickLavlinsky
      @NickLavlinsky  2 роки тому

      @@manjuan1505 nginx.org/ru/docs/ngx_core_module.html#load_module

    • @NickLavlinsky
      @NickLavlinsky  2 роки тому

      nginx.org/ru/docs/ngx_core_module.html#load_module

  • @fannigurt
    @fannigurt 4 роки тому +2

    Привет!
    Очень клевый канал, помог защититься от небольшого ddos'a настройкой nginx.
    Сегодня возникла проблемма над которой я толчусь на месте, очевидно, что-то простое.
    Я пытаюсь с одного сайта (https) запрос проксировать на другой сайт (https) и на другой путь, но! с теми же аргументами адресной строки что пришли на изначальный адрес.
    Схематично это так,
    server {
    server_name abc.com;
    location /a/b/ {
    include proxy_params;
    proxy_pass xyz.com/d/e/;
    }
    ...
    }
    нифига не работает. Памагите!

    • @NickLavlinsky
      @NickLavlinsky  4 роки тому +1

      Что конкретно не работает? Если нужно именно параметры передвать, то примерно так: proxy_pass xyz.com/d/e/$is_args$args;

  • @scorpicum
    @scorpicum 4 роки тому +2

    Спасибо. А как заранее сжимать в brotli документы, с gzip понятно, а с br нет. И про настройку модуля pagespeed для nginx будет видос?

    • @NickLavlinsky
      @NickLavlinsky  4 роки тому +2

      Сжимать brotli примерно так же, только с помощью команды brotli. Можно поставить из репозитория или собрать. Дальше сжимаем со степенью 11.

    • @NickLavlinsky
      @NickLavlinsky  4 роки тому +1

      По pagespeed модулю: зачем вы его хотите использовать?

    • @Devof-n9i
      @Devof-n9i 4 роки тому +2

      Скажите, пжл, на демонстрации бротли, в статичном режиме не видно преимуществ. В бою сжатые статично бротли отличаются от gz или разницы не заметно?

    • @NickLavlinsky
      @NickLavlinsky  4 роки тому +1

      @@Devof-n9i Вам пятёрка за внимательность! С бротли всё работает так же, как и с gzip. На демонстрации не было эффекта, потому что я не учёл наличие mod_security на этом сервере и он съедал всё преимущество (я показывал html документ, который подпадал под анализ mod_security). По эффективности сжатия бротли конечно лучше (примерно на 20%).

    • @scorpicum
      @scorpicum 4 роки тому +1

      @@NickLavlinsky Например убирать пробелы и комменты из загружаемых данных. Интересно было послушать и узнать мнения о возможностях pagespeed, понятно, что в нем много лишнего.