Перейти к основному содержимому

Обратный прокси

Обратный прокси стоит перед Semaphore и терминирует TLS, поэтому браузеры и runner'ы общаются с ним по HTTPS, а сам Semaphore слушает обычный HTTP на локальном интерфейсе. В Semaphore также есть встроенный TLS, так что прокси не является строго обязательным. Используйте его, если у вас уже работает прокси, если сертификатом управляет другая система, если нужно разместить Semaphore на подпути или обслуживать несколько сервисов на одном хосте.

Что должна учитывать любая конфигурация

Какой бы прокси вы ни выбрали, три вещи должны быть настроены правильно, иначе части интерфейса перестанут работать так, что причину будет трудно найти:

  • Upgrade WebSocket на /api/ws. Логи задач передаются через WebSocket. Без заголовков upgrade окно лога остаётся пустым, пока выполняется задача.
  • Таймаут чтения больше интервала ping. Semaphore отправляет ping в простаивающий WebSocket примерно каждые две минуты. Прокси, который закрывает простаивающие соединения через 60 секунд, будет раз за разом обрывать просмотр логов.
  • web_host со значением публичного URL. Semaphore формирует URL перенаправлений, устанавливает флаг Secure у cookie и проверяет источник запроса на основе этого значения. Если оно не совпадает с адресом, который использовал браузер, вход не удастся. См. Настройку.

В этом разделе

СтраницаСодержимое
nginxБлок server с TLS, upgrade WebSocket и передаваемыми заголовками.
ApacheВиртуальный хост с использованием mod_proxy и mod_proxy_wstunnel.
CaddyМинимальный Caddyfile с автоматическими сертификатами.

С чего начать

Выберите тот прокси, который вы уже используете. Если предпочтений нет и готового прокси тоже, Caddy — самый короткий путь: он сам получает и продлевает сертификаты.

О защите за пределами TLS читайте в разделе Сетевая безопасность.