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
Спасибо за информацию о сжатии. Для меня новичка это очень важно
А вот Docker, Kubernetes контейнеризация в общем влияет как-то на производительность, скорость сайта?
Не должна, там потери измеряются в единицах процентов. Это же просто группа процессов внутри ОС, расходы только на контроль ресурсов и виртуальные сетевые интерфейсы.
конфигов нет....
Добавил в описание, смотрите.
Скажите, пожалуйста, на счет одного момента: в конфиге nginx.conf сперва указан включенный gzip, затем чуть ниже - включенный brotli. Так и принято указывать сразу два метода (условно говоря, это работает по принципу - что ниже то и применится или как) или достаточно оставить лишь brotli?
При запросе браузер показывает, какие типы сжатия поддерживает. Nginx на этой базе отдаёт в наиболее эффективном варианте, из поддерживаемых. Что вверху или внизу в конфигурации никак не влияет.
@@NickLavlinsky Nginx - умница) спасибо за ответы.
@@NickLavlinsky Скажите, пожалуйста, нужно ли заранее подготавливать и ложить рядом с оригиналами файлы типа some-script.js.br и some-style.css.br? или же это делается самим сервером автоматом на лету?
@@ДануфСвияга Да, нужно подготоваливать заранее, так можно получить максимальную степень компресии и не грузить сервер сжатием на лету.
@@NickLavlinsky Cкажите, пожалуйста, если уже был установлен nginx, то чтобы добавить поддержку brotli - нужно ли пересобирать обязательно nginx+brotli или же можно brotli отдельно доустановить сверху?
Большое спасибо за урок. Мне как дилетанту пришли в голову, очевидные мысли, что статичный лендинг было бы удобно сжать заранее и отдавать в готовом виде и предполагал, что такое возможно и тут ваш урок подоспел. Немного новогоднего елея на самолюбие (что оказался прав). Еще раз, Спасибо!
И вопрос не по этой теме, но по существу: правильно ли я понимаю поисковики кэшируют у себя страницы и отдают их без обращение к моему серверу, если мой Nginx и html ему (поисковику) об этом сообщают? Как это эффективно делать?
Пожалуйста, пользуйтесь. Если есть идеи по новым видео (что нужно разобрать) - пишите.
Спасибо. Я немного поправил свой комментарий выше. Дополнил благодарность вопросом))
По вопросу: нет, не правильно. Поисковики отправляют пользователя вам на сайт, а не показывают сайт через себя.
Понял. Спасибо.
У меня Freebsd 11. Из пакетов установил brotli, затем в конфиг nginx прописал те же строки что и у Вас, перезапускаю nginx и получаю ответ: nginx: [emerg] unknown directive "brotli_static" in /usr/local/etc/nginx/nginx.conf:46
Что я сделал не так, подскажите пожалуйста?
Вы либо не собрали, либо не подключили модуль brotli_static.
@@NickLavlinsky то что собрал это 100%, а в каком месте его подключить? Где-то что-то надо прописать, подскажите пожалуйста?
@@manjuan1505 nginx.org/ru/docs/ngx_core_module.html#load_module
nginx.org/ru/docs/ngx_core_module.html#load_module
Привет!
Очень клевый канал, помог защититься от небольшого ddos'a настройкой nginx.
Сегодня возникла проблемма над которой я толчусь на месте, очевидно, что-то простое.
Я пытаюсь с одного сайта (https) запрос проксировать на другой сайт (https) и на другой путь, но! с теми же аргументами адресной строки что пришли на изначальный адрес.
Схематично это так,
server {
server_name abc.com;
location /a/b/ {
include proxy_params;
proxy_pass xyz.com/d/e/;
}
...
}
нифига не работает. Памагите!
Что конкретно не работает? Если нужно именно параметры передвать, то примерно так: proxy_pass xyz.com/d/e/$is_args$args;
Спасибо. А как заранее сжимать в brotli документы, с gzip понятно, а с br нет. И про настройку модуля pagespeed для nginx будет видос?
Сжимать brotli примерно так же, только с помощью команды brotli. Можно поставить из репозитория или собрать. Дальше сжимаем со степенью 11.
По pagespeed модулю: зачем вы его хотите использовать?
Скажите, пжл, на демонстрации бротли, в статичном режиме не видно преимуществ. В бою сжатые статично бротли отличаются от gz или разницы не заметно?
@@Devof-n9i Вам пятёрка за внимательность! С бротли всё работает так же, как и с gzip. На демонстрации не было эффекта, потому что я не учёл наличие mod_security на этом сервере и он съедал всё преимущество (я показывал html документ, который подпадал под анализ mod_security). По эффективности сжатия бротли конечно лучше (примерно на 20%).
@@NickLavlinsky Например убирать пробелы и комменты из загружаемых данных. Интересно было послушать и узнать мнения о возможностях pagespeed, понятно, что в нем много лишнего.