Skip to content
  • Категории
  • Последние
  • Метки
  • Популярные
  • World
  • Пользователи
  • Группы
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • По умолчанию (Darkly)
  • Нет скина
Collapse

База знаний (кластер NBICS)

  1. Главная
  2. Cockpit
  3. Cockpit - мультисерверный вход по домену

Cockpit - мультисерверный вход по домену

Запланировано Прикреплена Закрыта Перенесена Cockpit
2 Сообщения 1 Posters 9 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • A Не в сети
    A Не в сети
    Admin
    написал в отредактировано Admin
    #1

    Изменения в конфиге Nginx


    Меняем содержимое конфига на следующий текст:

    server {
        listen 443 ssl http2;
        server_name my_domain.tld;  # Вставляем нужный домен
    
        # SSL сертификаты от Let's Encrypt
        ssl_certificate /etc/letsencrypt/live/my_domain.tld/fullchain.pem;  # Вставляем нужный домен
        ssl_certificate_key /etc/letsencrypt/live/my_domain.tld/privkey.pem;  # Вставляем нужный домен
    
        # Общие SSL настройки (рекомендуется для безопасности и производительности)
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
    
        # Пример для первого контейнера: https://my_domain.tld/vm1/
        location /vm1/ {
            proxy_pass https://localhost:9090/vm1/;  # IP и порт Cockpit в первом контейнере
    
            # Поддержка WebSocket (обязательно для Cockpit)
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
    
            # Важные заголовки
            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;
            proxy_set_header X-Forwarded-Host $host;
            
            # Ключевое для cookie и аутентификации в subpath
            proxy_cookie_path / /vm1/;
    
            # Отключаем буферизацию для мгновенной работы терминала
            proxy_buffering off;
            proxy_request_buffering off;
    
            # Таймауты для долгоживущих соединений (WebSocket)
            proxy_read_timeout 3600s;
            proxy_send_timeout 3600s;
            
            proxy_ssl_verify off;  # если self-signed в контейнере
        }
    
        # Пример для второго контейнера: https://my_domain.tld/vm2/
        location /vm2/ {
            proxy_pass https://10.155.64.245:9090/vm2/;  # Замените на реальный IP второго контейнера
    
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
    
            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;
            proxy_set_header X-Forwarded-Host $host;
            
            # Ключевое для cookie и аутентификации в subpath
            proxy_cookie_path / /vm2/;
    
            proxy_buffering off;
            proxy_request_buffering off;
    
            proxy_read_timeout 3600s;
            proxy_send_timeout 3600s;
            
            proxy_ssl_verify off;  # если self-signed в контейнере
        }
    
        # Добавляйте новые location-блоки по аналогии для каждого нового контейнера
    
        # Опционально: редирект корня домена на страницу выбора или заглушку
        location = / {
            return 301 /vm1/;  # Или можно сделать простую страницу с ссылками
        }
    
        # Запрет доступа к скрытым файлам и служебным путям
        location ~ /\. {
            deny all;
        }
    }
    
    

    Названия подкаталогов выбираем самостоятельно, либо оставляем как есть - vm1, vm2, и т.д.


    sudo nginx -t
    sudo systemctl reload nginx
    
    1 ответ Последний ответ
    0
    • A Не в сети
      A Не в сети
      Admin
      написал в отредактировано
      #2

      Изменения в конфигах Cockpit


      В каждом LXC-контейнере (/etc/cockpit/cockpit.conf):

      Для первого:

      [WebService]
      Origins = https://my_domain.tld wss://my_domain.tld  # меняем на нужный домен
      ProtocolHeader = X-Forwarded-Proto
      AllowUnencrypted = true
      UrlRoot = /vm1   # Добавляем эту строку для первого сервера
      

      Для второго:

      [WebService]
      Origins = https://my_domain.tld wss://my_domain.tld  # меняем на нужный домен
      ProtocolHeader = X-Forwarded-Proto
      AllowUnencrypted = true
      UrlRoot = /vm2   # Добавляем эту строку для второго сервера
      

      Далее - для каждой системы с Cockpit

      systemctl restart cockpit
      
      1 ответ Последний ответ
      0
      Ответить
      • Ответить, создав новую тему
      Авторизуйтесь, чтобы ответить
      • Сначала старые
      • Сначала новые
      • По количеству голосов


      • Войти

      • Login or register to search.
      Powered by NodeBB Contributors
      • Первое сообщение
        Последнее сообщение
      0
      • Категории
      • Последние
      • Метки
      • Популярные
      • World
      • Пользователи
      • Группы