Маршрутизация
Направляйте запросы по имени хоста и пути URL. Задавайте отдельные настройки для сервисов и раздавайте локальные файлы.
unRedirector направляет запросы к вашим сервисам, распределяет нагрузку и управляет доступом. Поддерживает TLS, WebSocket, WebDAV и gRPC.
/unRed/traffic
Что это
unRed объединяет доступ к API, веб-приложениям и файловым хранилищам. Правила маршрутизации и настройки сервисов хранятся в JSON.
Направляйте запросы по имени хоста и пути URL. Задавайте отдельные настройки для сервисов и раздавайте локальные файлы.
Распределяйте запросы между серверами с учётом их веса и доступности. Подключайте резервные серверы при отказе основных.
Настраивайте сертификаты и их продление через certbot. Проверяйте клиентов через mTLS, Bearer-токены или внешнюю службу аутентификации.
Кэшируйте ответы с учётом Cache-Control и Vary. Обновляйте их в фоне и очищайте кэш через API.
HTTP/1.1 и HTTP/2 по TCP, входящий HTTP/3 по QUIC/UDP. WebSocket, gRPC и 103 Early Hints. Для WebDAV доступны прозрачная передача ответов и преобразование статусов в 200.
Проверяйте статус, журналы, трафик, кэш и доступность серверов на служебных страницах /unRed.
Быстрый старт
Пример направляет запросы к app.local на сервис 127.0.0.1:3000. Для запуска нужны бинарник с действующей лицензией, работающий сервис и TLS-сертификат для app.local.
Сохраните пример в config.json. Поместите сертификат и ключ в certs/app.local.crt и certs/app.local.key.
В каталоге с конфигурацией выполните ./unred.lin -config ./config.json. Подробнее о сборке и запуске.
Добавьте 127.0.0.1 app.local в файл hosts. Откройте https://app.local:9443/ в браузере, который доверяет сертификату.
{
"listen-http": "127.0.0.1:8180",
"listen-https": "127.0.0.1:9443",
"dropPrivileges": { "drop": false },
"certs": {
"app.local": {
"cert": "certs/app.local.crt",
"key": "certs/app.local.key"
}
},
"rules": {
"app.local": "http://127.0.0.1:3000"
}
}
Архитектура
Прокси принимает HTTPS-соединение и выбирает сертификат по имени сервера (SNI). Настройка clientTLS включает проверку сертификата клиента.
Настройки auth определяют способ аутентификации для хоста: Bearer-токен либо Basic с проверкой через внешнюю программу или службу.
Маршрут выбирается по наиболее длинному совпадающему префиксу хоста и пути. Балансировщик учитывает вес и доступность серверов.
Прокси передаёт ответ клиенту. Для gRPC сохраняет завершающие заголовки (trailers). Для WebDAV применяет выбранный режим: прозрачный или с преобразованием статуса в 200.
Онлайн-документация
Установка, настройка и эксплуатация unRedirector.
Параметры запуска, настройки JSON и обновление конфигурации.
Правила для хостов и путей, локальные файлы и повторные запросы.
Сертификаты, проверка соединений с серверами и доступ клиентов.
Готовые конфигурации для прокси, балансировки, TLS и WebDAV.
Развитие проекта
Планируемые возможности. Полный список и текущий статус.
Передача UDP-пакетов другим сервисам, включая STUN, TURN и RTP.
Отправка ресурсов клиенту до отдельного запроса.
Правила изменения HTML и другого содержимого ответов.
Синхронизация лимитов запросов и доступности серверов между процессами unRed.
Маршруты, трафик и состояние серверов на одном экране.
Экспорт показателей для внешнего мониторинга.