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

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

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

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

  • Операционная система: Debian или Ubuntu (требуется менеджер пакетов apt).

  • Привилегии: Для установки пакетов и настройки сервисов требуется доступ root или права sudo.

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

  • Порты: Порты 80 (HTTP) и 443 (HTTPS) должны быть открыты и доступны из интернета.

FQDN конечного узла

Полное доменное имя (FQDN) развернутого экземпляра имеет следующий формат: nginx<Server ID>.hostkey.in

Приложение доступно через HTTPS на порту 443.

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

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

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

  • /var/www/letsencrypt: Каталог веб-корня, используемый для проверок ACME от Let's Encrypt.

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

  • /etc/nginx/sites-enabled: Расположение символических ссылок на активные конфигурации сайтов.

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

  • /etc/letsencrypt/live: Место хранения активных SSL-сертификатов и ключей.

  • /etc/letsencrypt/renewal-hooks/deploy: Расположение скриптов, выполняемых после обновления сертификата.

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

Приложение устанавливается с помощью менеджера пакетов apt. Устанавливаются следующие компоненты:

  • nginx: Программное обеспечение веб-сервера.

  • certbot: ACME-клиент для получения SSL-сертификатов.

  • python3-certbot-nginx: Плагин Nginx для Certbot.

  • openssl: Криптографический набор инструментов.

Процесс установки включает обновление кэша пакетов, установку необходимых пакетов и включение автоматического запуска сервиса nginx при загрузке системы.

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

Меры безопасности и контроль доступа настроены следующим образом:

  • Сервис nginx включен и запущен через systemd.

  • Конфигурация сайта Nginx по умолчанию удалена для предотвращения конфликтов.

  • SSL-сертификаты получены с использованием протокола ACME от Let's Encrypt с RSA-ключом размером 4096 бит.

  • HTTP-трафик на порту 80 перенаправляется на HTTPS на порт 443.

  • Настроен хук развертывания для автоматической перезагрузки Nginx при обновлении сертификата.

Контейнеры Docker и их развертывание

В данном развертывании контейнеры Docker не используются. Приложение работает как нативный системный сервис, управляемый через systemd.

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

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

  • SSL/TLS: Включено с использованием сертификатов от Let's Encrypt.

  • Перенаправление HTTP на HTTPS: Весь трафик на порту 80 перенаправляется на порт 443.

  • Проверка ACME: Специальный блок location обрабатывает запросы к /.well-known/acme-challenge/ для обеспечения выдачи и обновления сертификатов.

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

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

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

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

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

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

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

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

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

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

  • Ссылка на активный сайт: /etc/nginx/sites-enabled/<fqdn>.conf

  • SSL-сертификаты: /etc/letsencrypt/live/<fqdn>/

  • Параметры DH: /etc/letsencrypt/dhparams/dhparam.pem

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

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

Следующие порты настроены для внешнего и внутреннего доступа:

Порт Протокол Описание
80 HTTP Используется для проверок ACME и перенаправления трафика на HTTPS.
443 HTTPS Основной порт для защищенного веб-трафика.

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

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

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

    systemctl start nginx
    

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

    systemctl stop nginx
    

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

    systemctl reload nginx
    

  • Проверка статуса сервиса:

    systemctl status nginx
    

  • Проверка синтаксиса конфигурации:

    nginx -t
    

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