Главное Свежее Вакансии Образование
367 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Как установить brotli и увеличить скорость загрузки сайта на nginx

Один из способов ускорить работу сайта — кэширование данных. Один из эффективных методов сжатия — установка модуля brotli, разработанного Google.

Для установки данного модуля нужно пересобирать веб-сервер nginx, на котором расположен сайт. Но это долгий процесс и может помешать работе уже существующего сайта. Поэтому мы нашли способ, как этого избежать.

Его мы использовали, например, на проекте МонакоМода. Это позволило ускорить загрузку сайта на 35 пунктов по Google Pagespeed без рисков для стабильности.

Для реализации нужен root-доступ к серверу сайта, а сам сайт должен быть с защищенным соединением SSL. Если это есть, нужно выполнить следующие шаги:

Шаг 1 — Установка исходников nginx


Прежде чем начать, надо обновить сам сервер, все его модули, а также установить дополнительные библиотеки:

sudo apt update

sudo apt install -y build-essential git apt-transport-https socat

Смотрим свою версию nginx:

nginx -v

После обновлений и проверок, можно скачивать исходники:

wget https://nginx.org/download/nginx-1.14.1.tar.gz && tar zxvf nginx-1.14.1.tar.gz

rm nginx-1.14.1.tar.gz

Шаг 2 — Скачивание модуля brotli и перенос его на боевой nginx


Скачиваем модуль:

git clone https://github.com/eustas/ngx_brotli.git

cd ngx_brotli && git submodule update —init && cd ~

Переходим в папку с исходниками nginx и добавляем модули:

cd ~/nginx-1.14.1

sudo apt install -y libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev

Затем скомпилируем модуль в этой же папке:

./configure —with-compat —add-dynamic-module=../ngx_brotli

make modules

sudo cp objs/*.so /etc/nginx/modules

«/etc/nginx/modules» — это адрес папке, где находятся модули боевого nginx, обычно он всегда такой, но лучше пред этим проверить

После таких махинаций, смотрим что все файлы появились в папке (ngx_http_brotli_filter_module.so, ngx_http_brotli_static_module.so):

ls /etc/nginx/modules

Устанавливаем разрешение 644 для всех файлов .so:

sudo chmod 644 /etc/nginx/modules/*.so

Шаг 3 — Настройка боевого nginx


Переходим в папку самого nginx и находим конфиг /etc/nginx/nginx.conf, в нем мы добавляем вот такие строки:

load_module modules/ngx_http_brotli_filter_module.so;

load_module modules/ngx_http_brotli_static_module.so;

Это позволяет нам подключить сам модуль. После этого проверяем nginx на ошибки sudo nginx -t, если все нормально, то мы настроили все верно.

Дальше заходим в конфиг нужного сайта и активируем brotli, при этом убираем gzip, больше он нам не нужен.

brotli on;

brotli_static on;

brotli_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;

После этого перезагружаем nginx — и всё готово!

#скоростьсайта #скоростьзагрузки #скоростьзагрузкисайта

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.