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

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

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

Перед началом развертывания необходимо выполнить следующие системные требования:

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

  • Привилегии: доступ root или права sudo

  • Сеть: Межсетевой экран должен разрешать доступ к портам 80 и 443

  • Домен: Требуется действительная регистрация домена в зоне hostkey.in

  • Зависимости: Система должна иметь доступ в Интернет для загрузки пакетов и получения сертификатов от Let's Encrypt

FQDN итоговой панели

Приложение доступно по следующему формату Полного Квалифицированного Именного Домена (FQDN):

  • Формат: <prefix>Server ID.hostkey.in:443

  • Префикс: nginx

  • Пример: nginx123.hostkey.in

  • Порт: 443 (HTTPS)

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

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

  • /var/www/html: Основной корневой каталог веб-сайта, принадлежащий пользователю www-data

  • /var/www/letsencrypt: Корневой каталог для валидации вызовов ACME, принадлежащий пользователю www-data

  • /etc/letsencrypt/live/<fqdn>: Содержит полную цепочку SSL-сертификата (fullchain.pem), приватный ключ (privkey.pem) и сертификат цепочки доверия (chain.pem)

  • /etc/nginx/sites-available/<fqdn>.conf: Основной файл конфигурации Nginx для сайта

  • /etc/nginx/sites-enabled/<fqdn>.conf: Символическая ссылка, активирующая конфигурацию сайта

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

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

Стек приложения состоит из Nginx и Certbot, устанавливаемых через системный менеджер пакетов. Версии устанавливаемых пакетов являются последними доступными в репозиториях Debian или Ubuntu на момент установки.

  • Установка пакетов: nginx, certbot, python3-certbot-nginx, openssl

  • Включение и запуск сервиса nginx сразу после установки

  • Получение SSL-сертификатов с помощью Certbot в неинтерактивном режиме (non-interactive mode) с использованием RSA-ключа размером 4096 бит

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

Безопасность управляется через владение файлами, права доступа и настройки межсетевого экрана:

  • Пользователи:

  • root: Владелец конфигурационных файлов и каталогов Let's Encrypt

  • www-data: Владелец каталогов с веб-контентом (/var/www/html, /var/www/letsencrypt)

  • Межсетевой экран: Убедитесь, что порты 80 (HTTP) и 443 (HTTPS) открыты для внешнего интернета

  • Ограничения: Стандартный сайт Nginx отключен для предотвращения конфликтов с пользовательской конфигурацией

  • Сертификаты: Сертификаты генерируются с размером RSA-ключа 4096 бит и хранятся с ограниченными правами доступа

Настройки прав доступа

Права доступа к файлам и каталогам устанавливаются следующим образом для обеспечения безопасной работы:

  • /var/www/html: Режим 0755, Владелец www-data:www-data

  • /var/www/letsencrypt: Режим 0755, Владелец www-data:www-data

  • /etc/nginx/sites-available/<fqdn>.conf: Режим 0644, Владелец root:root

  • /etc/nginx/user_conf.d: Режим 0755, Владелец root:root

  • /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh: Режим 0755, Владелец root:root

Прокси-серверы

Nginx функционирует как основной обратный прокси и веб-сервер для этого развертывания:

  • Протокол: HTTP (Порт 80) автоматически перенаправляется на HTTPS (Порт 443)

  • SSL/TLS: Управляется Certbot с использованием Let's Encrypt; сертификаты обновляются автоматически

  • Конфигурация:

  • Порт 80 обрабатывает вызов ACME и перенаправляет трафик на HTTPS

  • Порт 443 обслуживает HTTPS-трафик с поддержкой HTTP/2

  • В конфигурацию включены параметры Диффи-Хеллмана (/etc/letsencrypt/dhparams/dhparam.pem) для усиления безопасности

  • Пользовательские домены: Конфигурация настроена для зоны hostkey.in с использованием префикса ID сервера

  • Обновление сертификатов: Скрипт развертывания (deploy hook, /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh) автоматически перезагружает Nginx после обновления сертификата

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

Критические файлы конфигурации и данные находятся по следующим путям:

  • /etc/nginx/sites-available/<fqdn>.conf: Активная конфигурация сайта Nginx

  • /etc/letsencrypt/live/<fqdn>/: Активные файлы SSL-сертификатов

  • /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh: Скрипт перезагрузки при обновлении сертификата

  • /var/www/html: Корневая директория документов по умолчанию

  • /var/www/letsencrypt: Каталог для вызовов ACME

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

Приложение использует следующие порты:

Порт Протокол Описание
80 TCP HTTP (Вызов ACME и перенаправление на HTTPS)
443 TCP HTTPS (Защищенный веб-трафик)

Запуск, остановка и обновление

Управление сервисом осуществляется через systemd. Для управления сервисом Nginx используются следующие команды:

  • Запуск сервиса: systemctl start nginx

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

  • Перезапуск сервиса: systemctl restart nginx

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

  • Включение при загрузке: systemctl enable nginx

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

Внесение изменений в конфигурацию требует этапа проверки с помощью команды nginx -t, за которым следует перезагрузка для применения изменений.

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