Как собрать NGINX из исходных кодов в Debian 12

NGINX, высокопроизводительный веб-сервер с открытым исходным кодом, славится своей стабильностью, низким потреблением ресурсов и способностью обслуживать динамический веб-контент. Он также способен обрабатывать большие нагрузки и работать в качестве обратного прокси. В данном руководстве вы узнаете, как собрать NGINX из исходных кодов в Debian 12, 11 и 10 и получить оптимизированный веб-сервер.

Зачем собирать NGINX из исходных текстов?

Сборка NGINX из исходных текстов имеет множество преимуществ:

  • Гибкость: Приспособление программного обеспечения к вашим конкретным потребностям, что позволяет создать действительно индивидуальную конфигурацию.
  • Контроль: Полный контроль над программным обеспечением, постоянное обновление и безопасность.
  • Производительность: Оптимизация программного обеспечения под конкретную среду и аппаратное обеспечение, что повышает производительность.
  • Совместимость: Добавление и удаление модулей по мере необходимости, что обеспечивает бесшовную интеграцию с другим программным обеспечением и технологиями в вашем стеке.
  • Безопасность: Применение исправлений и обновлений безопасности сразу после выхода, что повышает безопасность сервера и сайта.

Шаг 1: Обновление и модернизация Debian

Прежде чем приступать к процессу установки, убедитесь, что ваша система Debian обновлена. Этого можно добиться, выполнив в терминале следующие команды:

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

Шаг 2: Установка необходимых зависимостей

Для компиляции NGINX необходимо установить некоторые зависимости. Эти зависимости необходимы для процесса сборки. Для их установки выполните следующую команду:

Шаг 3: Загрузка исходного кода NGINX

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

Замените x.x.x на номер версии. Например, для загрузки последней основной версии, 1.25.1, выполните следующее:

Шаг 4: Извлечение исходного кода

Исходный код поставляется в виде сжатого tar-шара. Чтобы использовать его, необходимо извлечь. Выполните следующую команду:

Затем перейдите в только что распакованный каталог:

Шаг 5: Настройка параметров NGINX

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

Эта команда может показаться сложной, но это просто список опций, которые указывают скрипту ./configure, как подготовить makefile для сборки NGINX. Давайте разберем некоторые из ключевых компонентов:

  • --prefix=/var/www/html: Здесь задается корневой каталог для установки. Все относительные пути будут исходить из этого места.
  • --sbin-path=/usr/sbin/nginx: Здесь указывается место установки исполняемого файла nginx.
  • --conf-path=/etc/nginx/nginx.conf: Указывает местоположение основного конфигурационного файла NGINX.
  • --http-log-path=/var/log/nginx/access.log и --error-log-path=/var/log/nginx/error.log: Эти опции задают расположение файлов журналов доступа и ошибок соответственно.
  • --with-pcre: Включает использование библиотеки PCRE (Perl Compatible Regular Expressions), которая позволяет NGINX обрабатывать регулярные выражения в конфигурационных файлах.
  • --lock-path=/var/lock/nginx.lock и --pid-path=/var/run/nginx.pid: Эти опции задают расположение файлов nginx.lock и nginx.pid соответственно. Файл lock используется для предотвращения одновременного изменения конфигурационного файла, а файл pid хранит идентификатор запущенного главного процесса NGINX.
  • --with-http_ssl_module: Включает модуль SSL для безопасных соединений.
  • --with-http_image_filter_module=dynamic: Включает модуль фильтрации изображений, который позволяет NGINX преобразовывать изображения на лету.
  • --modules-path=/etc/nginx/modules: Устанавливает путь, по которому будут храниться динамические модули.
  • --with-http_v2_module: Включает модуль HTTP/2, который позволяет NGINX поддерживать протокол HTTP/2.
  • --with-stream=dynamic: Включает динамически модуль stream, что обеспечивает возможность работы с TCP/UDP-потоками.
  • --with-http_addition_module и --with-http_mp4_module: Включают модули добавления и MP4 соответственно. Модуль добавления позволяет возвращать клиенту более одного ответа, а модуль MP4 обеспечивает возможность потоковой передачи данных в формате MP4.

Приведенная выше команда предназначена для пользователей, использующих Mainline-версию NGINX, которая теперь включает в себя модуль HTTP/3. Если вы не хотите использовать модуль HTTP/3, вы можете удалить его из команды.

  • --with-http_v3_module: Включает модуль HTTP/3, который позволяет NGINX поддерживать протокол HTTP/3. HTTP/3 - это третья основная версия протокола передачи гипертекста, который используется для обмена двоичной информацией во Всемирной паутине. Она значительно превосходит HTTP/2 по производительности, особенно в части задержек и лучшей обработки потерь пакетов. Включение этого модуля позволит вашему серверу NGINX обрабатывать запросы HTTP/3, обеспечивая пользователям более быструю и надежную работу в Интернете.

успешная настройка экрана сборки nginx на debian linux

Шаг 6: Установка NGINX (компиляция и сборка NGINX)

После настройки параметров сборки NGINX из исходных текстов настало время компиляции и установки NGINX. Этот процесс состоит из двух этапов:

Сначала команда make компилирует исходный код NGINX с использованием опций, указанных в сценарии ./configure. После этого создается двоичный исполняемый файл NGINX:

выполнить установку сборки nginx debian

Во-вторых, команда sudo make install устанавливает двоичный файл NGINX, файлы конфигурации и другие файлы по пути с префиксом, указанному в сценарии ./configure:

После установки NGINX будет находиться в каталоге sbin префиксного пути.

пример сборки и установки nginx на debian linux

Шаг 7: Создание службы NGINX SystemD

После сборки и компиляции NGINX из исходных текстов необходимо создать процесс systemd для управления службой NGINX в вашей системе. Вот как это сделать:

Создайте новый файл службы systemd:

Добавьте в файл следующее содержимое:

Перезагрузите демон systemd:

Запустите службу NGINX:

Включите автоматический запуск службы NGINX при загрузке:

Наконец, убедитесь, что служба активирована:

Шаг 8: Тестирование NGINX

Чтобы убедиться в правильности работы NGINX, откройте веб-браузер и перейдите на тестовую страницу, используя IP-адрес локального хоста или сервера:

http://localhost

Или замените localhost на IP-адрес вашего сервера.

пример nginx успешно установлен и скомпилирован с тестовой страницей в браузере на debian linux
Дополнительные команды и советы

Компиляция NGINX с дополнительными модулями

Расширить функциональность NGINX можно, скомпилировав его с дополнительными модулями. Например, чтобы использовать модуль Nginx HTTP push, используйте флаг --add-module при конфигурировании NGINX:

Заключение

В этом руководстве подробно рассмотрен процесс компиляции NGINX на Debian 12, 11 и 10. Компилируя NGINX из исходных текстов, вы можете настроить свою установку на включение дополнительных модулей, не входящих в стандартный пакет. Это позволит вам создать индивидуальную установку NGINX, оптимизированную под ваши нужды.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий