Решение проблемы с маршрутизацией доменов

Дата: 2026-01-08
Статус: ✅ Решено

Проблема

Внешние запросы на docs.cdto.life и denkart.cdto.life редиректлись, хотя внутри контейнера docs-denkart все работало правильно.

Причина

Запросы попадали в контейнер BBB-CONT22-1, где не было конфигурации для этих доменов, и они обрабатывались как school.cdto.life (который делает редирект на HTTPS).

Решение

Добавлена конфигурация маршрутизации в BBB-CONT22-1, которая проксирует запросы на docs.cdto.life и denkart.cdto.life в контейнер docs-denkart.

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

Файл: /etc/nginx/sites-enabled/00-bbb-routing.conf в контейнере BBB-CONT22-1

Содержимое:

# Домен: docs.cdto.life - проксирование в docs-denkart
server {
    listen 80;
    listen [::]:80;
    server_name docs.cdto.life;

    location / {
        proxy_pass http://10.218.14.102:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

# Домен: denkart.cdto.life - проксирование в docs-denkart
server {
    listen 80;
    listen [::]:80;
    server_name denkart.cdto.life;

    location / {
        proxy_pass http://10.218.14.102:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Результат

docs.cdto.life - работает (HTTP 200 OK)
denkart.cdto.life - работает (HTTP 200 OK)
school.cdto.life - работает (редирект на HTTPS - нормально)

Архитектура маршрутизации

Внешний запрос → Хост (iptables) → BBB-CONT22-1 (порт 80)
                                    ↓
                    ┌───────────────┴───────────────┐
                    ↓                               ↓
        docs.cdto.life / denkart.cdto.life    school.cdto.life
                    ↓                               ↓
            docs-denkart (10.218.14.102)    BigBlueButton (локально)
                    ↓
        Nginx маршрутизация по Host заголовку
                    ↓
        docs.cdto.life → Python веб-сервер (8090)
        denkart.cdto.life → Cockpit (10.218.14.1:9090)

Проверка работы

# docs.cdto.life
curl -I http://docs.cdto.life/
# Результат: HTTP/1.1 200 OK ✅

# denkart.cdto.life
curl -I http://denkart.cdto.life/
# Результат: HTTP/1.1 200 OK ✅

# school.cdto.life
curl -I http://school.cdto.life/
# Результат: HTTP/1.1 301 (редирект на HTTPS - нормально) ✅

Следующие шаги

  1. ⏳ Получить SSL сертификаты для всех доменов
  2. ⏳ Настроить HTTPS для всех доменов
  3. ⏳ Настроить автоматическое обновление SSL сертификатов

Статус: ✅ Проблема решена, все домены работают