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

Обзор развертывания 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.
  • Пользовательская конфигурация 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 и их развертывание

Прокси-сервер приложения и терминация 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.

Команда развертывания

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

cd /root/nginx
docker compose up -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/.

  • Запуск службы:

    cd /root/nginx
    docker compose up -d
    

  • Остановка службы:

    cd /root/nginx
    docker compose down
    

  • Обновление службы: Для обновления контейнера Nginx/Certbot до последней версии образа:

    cd /root/nginx
    docker compose pull
    docker compose up -d
    

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