Обратный прокси
Обратный прокси стоит перед 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 читайте в разделе Сетевая безопасность.