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

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

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