Перейти к содержанию

Обзор развертывания Nginx на сервере

Предварительные требования

Для успешного развертывания веб-сервера должны быть соблюдены следующие условия:

  • Операционная система: Debian или Ubuntu.

  • Права доступа: права суперпользователя (root) для установки пакетов и изменения системных конфигураций.

  • Доменное имя: наличие настроенного домена, соответствующего шаблону.

  • Порты:

  • 80 (HTTP) — используется для проверки владения доменом (ACME challenge) и перенаправления на HTTPS.

  • 443 (HTTPS) — основной порт для работы веб-сервиса по защищенному протоколу.

FQDN итоговой панели на домене hostkey.in

| Параметр | Значение | | Префикс | nginx | | Домен | hostkey.in | | Полный шаблон | nginx{Server_ID_from_Invapi}.hostkey.in |

Структура файлов и каталогов

В процессе установки создаются и используются следующие директории:

  • /etc/nginx/sites-available/ — хранение доступных конфигурационных файлов серверов.

  • /etc/nginx/sites-enabled/ — активные конфигурационные файлы (символические ссылки).

  • /var/www/html — корневая директория для веб-контента.

  • /var/www/letsencrypt — рабочая директория для прохождения проверки Let's Encrypt (ACME challenge).

  • /etc/nginx/user_conf.d — директория для пользовательских конфигурационных файлов Nginx.

  • /etc/letsencrypt/live/ — хранение SSL-сертификатов.

Процесс установки приложения

Установка выполняется путем автоматизированного развертывания пакетов и настройки системных служб:

  1. Обновление системы: обновление кэша пакетного менеджера apt.

  2. Установка компонентов: установка веб-сервера nginx, клиента для получения сертификатов certbot (включая плагин для nginx) и библиотеки openssl.

  3. Настройка окружения:

  4. Создание необходимых директорий с правами доступа www-data.

  5. Синхронизация пользовательских конфигураций из /data/nginx/user_conf.d в системную директорию /etc/nginx/user_conf.d.

  6. Настройка HTTP-сервера: создание временной конфигурации для работы по порту 80, которая позволяет пройти проверку Let's Encrypt и отображает сообщение ожидания сертификата.

  7. Получение SSL-сертификатов: автоматический запрос и получение сертификатов через certbot с использованием метода webroot.

  8. Настройка HTTPS-сервера: создание финальной конфигурации, включающей:

  9. Перенаправление (redirect) с HTTP на HTTPS.

  10. Настройку SSL/TLS (включая поддержку протокола HTTP/2).

  11. Подключение пользовательских конфигураций из /etc/nginx/user_conf.d/*.conf.

Права доступа и безопасность

  • Пользователь: веб-контент доступен пользователю www-data.

  • Конфигурации: системные файлы Nginx имеют владельца root с правами на чтение (0644).

  • Безопасность SSL: используется алгоритм шифрования RSA с размером ключа 4096 бит.

  • Брандмауэр: должны быть открыты порты 80 и 443.

Контейнеры Docker и их запуск

В данном проекте контейнеры Docker не используются; приложение развертывается непосредственно в операционной системе как системный сервис.

Кастомные скрипты и дополнительные настройки

Для обеспечения автоматического обновления сертификатов используется установочный скрипт:

  • Расположение: /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh

  • Назначение: автоматическая перезагрузка службы nginx после успешного продления SSL-сертификата.

Также в системе выполняется модификация файла /etc/hosts, где IP-адрес 127.0.0.1 связывается с локальным FQDN сервера для обеспечения корректной работы внутри системы.

Инструкция по обновлению приложения

Для обновления веб-сервера необходимо выполнить обновление системных пакетов:

apt update && apt upgrade nginx

Расположение конфигурационных файлов и данных

  • Основная конфигурация: /etc/nginx/sites-available/{FQDN}.conf

  • Пользовательские настройки: /etc/nginx/user_conf.d/*.conf

  • Сертификаты (публичный ключ): /etc/letsencrypt/live/{FQDN}/fullchain.pem

  • Сертификаты (приватный ключ): /etc/letsencrypt/live/{FQDN}/privkey.pem

Доступные порты для подключения

Порт Протокол Назначение
80 TCP HTTP (перенаправление на HTTPS)
443 TCP HTTPS (основной трафик)

Запуск, остановка приложения

Управление сервисом осуществляется через systemctl:

  • Запуск: systemctl start nginx

  • Остановка: systemctl stop nginx

  • Перезагрузка конфигурации: systemctl reload nginx

  • Проверка статуса: systemctl status nginx

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×