Обзор развертывания Nginx Certbot на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие условия:
-
Операционная система с установленным Docker.
-
Доступ к управлению портами (80 и 443 должны быть открыты).
-
Наличие прав суперпользователя (
root) для создания директорий и управления контейнерами.
FDQN итоговой панели на домене hostkey.in¶
Для доступа к сервису используется динамический шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | nginx-certbot |
| Домен | hostkey.in |
| Полный шаблон | nginx-certbot{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
Все основные данные и конфигурации сосредоточены в директории /data/nginx/:
-
/data/nginx/docker-compose.yml— файл описания контейнеров Docker Compose. -
/data/nginx/user_conf.d/— директория для пользовательских конфигураций Nginx. -
/data/nginx/nginx-certbot.env— файл с переменными окружения. -
/data/nginx/user_conf.d/{prefix}{server_id}.{zone}.conf— основной файл конфигурации сервера.
Процесс установки приложения¶
Развертывание выполняется путем автоматического создания структуры директорий, генерации конфигурационных файлов на основе шаблонов и запуска контейнера через docker compose. В процессе создается Docker-volume nginx_secrets для хранения SSL-сертификатов.
Контейнеры Docker и их запуск¶
В системе развернут один основной контейнер:
| Параметр | Значение |
|---|---|
| Имя образа | jonasal/nginx-certbot:latest |
| Порты (host:container) | 80:80, 443:443 |
| Тома (volumes) | nginx_secrets:/etc/letsencrypt./user_conf.d:/etc/nginx/user_conf.d |
| Переменные окружения | CERTBOT_EMAIL=hkadm@hostkey.com |
| Политика перезапуска | unless-stopped |
Обновление приложения¶
Обновление выполняется через выполнение команды:
которая загружает новые версии образов и перезапускает контейнеры.Настройки прав¶
Для обеспечения безопасности установлены следующие права на директории и файлы:
-
Директория
/data/nginx/и вложенные папки: владелецroot, группаroot, режим доступа0640. -
Конфигурационные файлы (
docker-compose.yml,.conf,.env): владелецroot, группаroot, режим доступа0644.
Расположение конфигурационных файлов и данных¶
-
Конфигурация Nginx:
/data/nginx/user_conf.d/ -
Данные сертификатов (внутри Docker volume):
/etc/letsencryptв контейнере.
Доступные порты для подключения¶
| Порт | Протокол | Назначение |
|---|---|---|
80 | TCP | HTTP (для проверки Let's Encrypt) |
443 | TCP | HTTPS (основной трафик) |