Найти в Дзене
Компьютер

Debian 10. Веб-сервер nginx плюс Brotli. Самая подробная инструкция для новичков.

Все команды данные тут, выполнялись от лица суперпользователя или пользователя root. Вы можете выполнить команду sudo su, чтобы получить права root, либо не забывать перед выполнением каждой командой добавлять sudo. Сначала обновляем список пакетов: apt update При необходимости обновляем пакеты приложений: apt upgrade Устанавливаем необходимые инструменты: apt -y install build-essential curl git gcc libpcre3-dev libssl-dev zlib1g-dev libtool autoconf wget gnupg2 lsb-release debian-archive-keyring Устанавливаем сам nginx. Инструкция для установки взята с официального сайта. Здесь лишь краткое описание команд. За более подробным объяснением переходите на их сайт, он будет указан в источниках, в конце статьи. Итак, импортируем ключ: curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null Обратите внимание, если вы работаете не под суперпользователем (root), то после прямого слеша, вам нужно указать sudo, долж

Все команды данные тут, выполнялись от лица суперпользователя или пользователя root. Вы можете выполнить команду sudo su, чтобы получить права root, либо не забывать перед выполнением каждой командой добавлять sudo.

Сначала обновляем список пакетов:

apt update

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

apt upgrade

Устанавливаем необходимые инструменты:

apt -y install build-essential curl git gcc libpcre3-dev libssl-dev zlib1g-dev libtool autoconf wget gnupg2 lsb-release debian-archive-keyring

Устанавливаем сам nginx. Инструкция для установки взята с официального сайта. Здесь лишь краткое описание команд. За более подробным объяснением переходите на их сайт, он будет указан в источниках, в конце статьи. Итак,

импортируем ключ:

curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \

| tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Обратите внимание, если вы работаете не под суперпользователем (root), то после прямого слеша, вам нужно указать sudo, должно быть так: ...| sudo...

Проверяем ключ:

gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

Результат должен быть таким:

573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62

Если отпечаток отличается от вышеуказанного, удалите файл ключа.

Подключаем apt-репозитория для стабильной версии nginx:

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \

http://nginx.org/packages/debian lsb_release -cs nginx" \

| tee /etc/apt/sources.list.d/nginx.list

Обратите внимание, если вы работаете не под суперпользователем (root), то после прямого слеша, вам нужно указать sudo, должно быть так: ...| sudo...

Наконец устанавливаем стабильную версию nginx, по очереди выполняя следующие команды:

apt update

apt install nginx

Но для сборки nginx с brotli нужно будет установить исходный код nginx. Поэтому Создаём новый каталог:

mkdir nginx

Теперь мы будем работать только в нем. На самом деле это не то чтобы прям совсем хорошо, все же рекомендуется устанавливать brotli в каталоги типа usr/local/src. Но чтобы при добавлении brotli в nginx сборка не останавливалась с ошибкой, появлялась ошибка невозможности найти один определенный файл, упростим задачу и выбирем менее правильный, но более простой вариант.

Итак, переходим в созданный каталог:

cd nginx

Вбиваем в браузере какая есть последняя версия nginx на данный момент. В примере я буду использовать именно стабильную версию. На момент этого поста последней стабильной была 1.20.2. Скачиваем архив с исходниками этой версию:

wget https://nginx.org/download/nginx-1.20.2.tar.gz

Цифры ставим версии актуальной на момент прочтения.

Здесь же его распаковываем. Опять же, не забываем свои цифры ставить:

tar zxvf nginx-1.20.2.tar.gz

Теперь удаляем архив, не забывая подставлять свои цифры:

rm nginx-1.20.2.tar.gz

Переходим в каталог, который создался при распаковке архива:

cd nginx-1.20.2

Клонируем brotli:

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

Клонируем необходимую для нее библиотеку:

git clone https://github.com/bagder/libbrotli.git

Переходим в каталог libbrotli. Этот каталог создался автоматически, при выполнении предыдущей команды:

cd libbrotli

В этом каталоге собираем все это дело, выполняя три команды друг за другом, по порядку, обязательно дожидаясь завершения каждой из них:

./autogen.sh

./configure

make

После успешного выполнения всех трех команд переходим на директорию выше:

cd ..

Таким образом мы возвращаемся в папку (директорию) nginx.

Теперь нам нужно узнать некоторые параметры сервера nginx необходимые для добавления brotli. Для этого выполняем команду:

nginx -V

V заглавная, это ВАЖНО!

Это команда выдаст много-много букв. Все это нужно скопировать начиная с выражения "--prefix" и прям до конца.

Далее выполняем следующую команду:

./configure [...] --add-module=ngx_brotli // вместо квадратных скобок и многоточия нужно вставить (через пробел, это важно) тот длинный текст, который мы скопировали, начинающийся с --prefix. В самом конце, через пробел, добавить такую строку: "--add-module=ngx_brotli". Нажимаем энтер, чтобы выполнить эту команду. Ждем...

Вполне возможно система выдаст ошибку с предложением ввести следующую команду:

cd ngx_brotli && git submodule update --init && cd /home/ivan/nginx/nginx-1.20.2

Не паникуем, вводим эту команду, жмем энтер, ждем. После выполнения повторяем предыдущую команду:

./configure [...] --add-module=ngx_brotli

Ждем завершения ее выполнения.

И наконец выполняем последнюю команду:

make

Снова ждем...

Если выполнение последних команд прошло успешно, то поздравляю вас, вы собрали nginx добавив в него brotli!

Источники: https://nginx.org/ru/linux_packages.html

https://ealebed.github.io/posts/2017/пересборка-nginx-с-поддержкой-brotli/

https://vc.ru/dev/203073-kak-ustanovit-brotli-i-uvelichit-skorost-zagruzki-sayta-na-nginx?comments

https://blog.radjah.ru/2021/11/nginx-debian-brotli.html

#debian10 #web #server #nginx #brotli #инструкция #для новичков #linux