Обзор развертывания Apache Guacamole + Xfce на сервере¶
Предварительные требования¶
-
Операционная система: Распределение Linux, совместимое с Docker Engine.
-
Привилегии: Для управления службами Docker и конфигурации системы требуются права root или права
sudo. -
Доменная зона:
hostkey.in. -
Требуемые порты:
-
Порт
8080(Внутренний порт приложения). -
Порт
443(Внешний доступ через HTTPS). -
Порт
80(Требуется для проверки сертификата Let's Encrypt).
-
FQDN конечной точки доступа¶
Приложение доступно по полному доменному имени (FQDN), генерируемому на основе идентификатора сервера. Формат следует шаблону: guacamole<Server ID>.hostkey.in:443
-
Базовый домен:
hostkey.in -
Префикс поддомена:
guacamole -
Путь:
/guacamole/ -
Пример URL доступа:
https://guacamole1.hostkey.in/guacamole/
Структура файлов и каталогов¶
Развертывание использует следующую структуру каталогов для файлов конфигурации, хранения данных и сертификатов:
-
Каталог конфигурации Nginx:
/root/nginx/- Содержит файл определения Docker Compose:
/root/nginx/compose.yml.
- Содержит файл определения Docker Compose:
-
Пользовательская конфигурация Nginx:
/data/nginx/user_conf.d/- Монтируется внутри контейнера в
/etc/nginx/user_conf.d.
- Монтируется внутри контейнера в
-
Переменные окружения Nginx:
/data/nginx/nginx-certbot.env- Хранит переменные окружения, необходимые для службы Nginx и Certbot.
-
Хранилище SSL-сертификатов:
/etc/letsencrypt- Хранится в том Docker
nginx_secretsдля сохранения сертификатов Let's Encrypt.
- Хранится в том Docker
Контейнеры Docker и их развертывание¶
Прокси-сервер приложения и терминация SSL управляются через стек Docker Compose, расположенный по пути /root/nginx/compose.yml.
Конфигурация контейнера¶
Развертывание использует следующее определение службы:
-
Имя службы:
nginx -
Образ:
jonasal/nginx-certbot:latest -
Политика перезапуска:
unless-stopped -
Режим сети:
host -
Переменные окружения:
CERTBOT_EMAIL: Установлено значениеhkadm@hostkey.com.
-
Тома (Volumes):
-
nginx_secretsсмонтирован в/etc/letsencrypt(Внешний том). -
Каталог хоста
/data/nginx/user_conf.dсмонтирован в/etc/nginx/user_conf.d.
-
Команда развертывания¶
Для запуска службы перейдите в каталог конфигурации и выполните следующую команду:
Прокси-серверы¶
Развертывание включает контейнер обратного прокси-сервера Nginx, который обрабатывает терминацию SSL с использованием Let's Encrypt через Certbot.
-
Образ прокси-сервера:
jonasal/nginx-certbot:latest -
Поставщик SSL: Let's Encrypt (управляется автоматически контейнером).
-
Пользовательский домен: Служба разрешается на домен
guacamole<Server ID>.hostkey.in. -
Маршрутизация:
-
Входящий трафик на порт
443перенаправляется во внутренний путь/guacamole/. -
Прокси-сервер пересылает запросы на внутренний порт приложения
8080.
-
Настройки прав доступа¶
Права доступа к файлам и каталогам настроены следующим образом для обеспечения корректной работы стека Docker Compose:
-
Каталог:
/root/nginx/-
Владелец:
root -
Группа:
root -
Права доступа (Mode):
0644
-
-
Файл:
/root/nginx/compose.yml-
Владелец:
root -
Группа:
root -
Права доступа (Mode):
0644
-
Расположение файлов конфигурации и данных¶
-
Файл Docker Compose:
/root/nginx/compose.yml -
Переменные окружения конфигурации Nginx:
/data/nginx/nginx-certbot.env -
Пользовательские конфигурации Nginx:
/data/nginx/user_conf.d/ -
SSL-сертификаты: Хранятся внутри тома
nginx_secrets(отображены из/etc/letsencryptвнутри контейнера).
Доступные порты для подключения¶
-
Порт 8080: Внутренний порт связи для приложения Apache Guacamole.
-
Порт 443: Внешний защищенный порт HTTPS для доступа клиентов.
-
Порт 80: Требуется для проверки HTTP-01 при выпуске SSL-сертификатов Let's Encrypt.
Запуск, остановка и обновление¶
Управление службой осуществляется через команды Docker Compose, выполняемые в каталоге /root/nginx/.
-
Запуск службы:
-
Остановка службы:
-
Обновление службы: Для обновления контейнера Nginx/Certbot до последней версии образа: