Выберите подходящий пример и замените домены, адреса бэкендов, секреты и пути к сертификатам на свои. Скопируйте JSON в отдельный файл конфигурации. Для запуска нужны готовый бинарник с действующей лицензией и TLS-сертификат для входящих соединений. Подготовка и запуск.
Конфигурация
Типовые задачи
Проксирование запросов, распределение нагрузки, защищённый доступ и передача WebDAV- и TURN-трафика.
1. Один бэкенд
Запросы к app.local направляются на локальный сервер. Страницы состояния и нагрузки доступны по адресам /unRed/Status и /unRed/Load без дополнительных параметров.
Для WebDAV-запросов клиент получает исходные финальные статусы, заголовки и тело ответа: 207 остаётся 207, 423 — 423. Имя пользователя и пароль из заголовка Basic проверяет внешний сервис. Замените адреса и файлы сертификатов на свои.
Все финальные статусы WebDAV-ответов заменяются на 200, включая 207, 3xx и 4xx/5xx. Содержимое тела сохраняется. Ответы на HEAD и исходные 204/304 остаются без тела. Используйте этот режим, если клиент ожидает HTTP 200 независимо от результата операции. Для обычных WebDAV-клиентов выберите transparent.
WebDAV определяется по методу запроса или заголовку DAV бэкенда. Не добавляйте этот маршрут в passthrough_errors: совпавшее правило сохранит исходный статус. Отказы аутентификации, ограничения запросов и ошибки соединения сохраняют свои коды; статусы gRPC не изменяются. Правила применения.
TCP-соединения на портах 3478 и 5349 передаются TURN-серверу, например coturn или pion. Это позволяет WebRTC-клиентам использовать TURN по TCP в сетях с ограничениями. Передача UDP — в разработке.
Клиенты подключаются к unRed по HTTP/3 на UDP 9443 или по HTTP/1.1 и HTTP/2 на TCP 9443. Запросы передаются локальному HTTP-сервису на порту 3000. Замените имя хоста и файлы сертификата на свои.
Откройте UDP 9443 в межсетевом экране и NAT. Внешний UDP-порт должен совпадать с объявленным в Alt-Svc; иначе отключите advertiseAltSvc. Изменение параметров HTTP/3 требует перезапуска. Параметры и диагностика HTTP/3.
Проверка сертификатов, разделение конфигурации и доступ к служебным страницам.
1
Проверка сертификатов бэкендов
Включите backendTLS.verify. Для собственного центра сертификации укажите caFile, для взаимной TLS-аутентификации — clientCert и clientKey. По умолчанию сертификаты бэкендов не проверяются.
2
Отдельные файлы для доменов
Адреса прослушивания и общие настройки безопасности оставьте в основном файле. Маршруты, авторизацию и сертификаты доменов вынесите в JSON-файлы каталога config-dir. Для перечитывания конфигурации отправьте процессу сигнал SIGHUP.
3
Доступ к служебным страницам
В разделе /unRed доступны состояние сервера, сведения о сертификатах, кеше, бэкендах и трафике. Ограничьте доступ к этим страницам сетевыми правилами или авторизацией.
4
Для API включайте passthrough_errors
Для сохранения исходных статусов и JSON/XML тела добавьте префикс в passthrough_errors. Для DAV-автодетекции включите passthroughDAV с webdavResponseMode: "transparent". Явный префикс приоритетнее convert-200; эти режимы нельзя совместить для одного ответа.