Справочник конфигурации
На этой странице описан каждый ключ конфигурации в TOML-файле PRX-WAF. Файл конфигурации по умолчанию: configs/default.toml.
Настройки прокси ([proxy])
Настройки, управляющие прослушивателем reverse proxy.
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
listen_addr | string | "0.0.0.0:80" | Адрес прослушивания HTTP |
listen_addr_tls | string | "0.0.0.0:443" | Адрес прослушивания HTTPS |
worker_threads | integer | null | null (количество CPU) | Количество рабочих потоков прокси. Когда null, используется количество логических ядер CPU. |
Настройки API ([api])
Настройки для API управления и Admin UI.
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
listen_addr | string | "127.0.0.1:9527" | Адрес прослушивания Admin API + UI. В продакшене привяжите к 127.0.0.1 для ограничения доступа до localhost. |
Настройки хранилища ([storage])
Подключение к базе данных PostgreSQL.
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
database_url | string | "postgresql://prx_waf:[email protected]:5432/prx_waf" | URL подключения PostgreSQL |
max_connections | integer | 20 | Максимальное количество соединений с базой данных в пуле |
Настройки кеша ([cache])
Конфигурация кеширования ответов с использованием in-memory LRU-кеша moka.
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
enabled | boolean | true | Включить кеширование ответов |
max_size_mb | integer | 256 | Максимальный размер кеша в мегабайтах |
default_ttl_secs | integer | 60 | Время жизни кешированных ответов по умолчанию (секунды) |
max_ttl_secs | integer | 3600 | Максимальное ограничение TTL (секунды). Ответы не могут кешироваться дольше этого значения независимо от заголовков апстрима. |
Настройки HTTP/3 ([http3])
HTTP/3 через QUIC (библиотека Quinn).
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
enabled | boolean | false | Включить поддержку HTTP/3 |
listen_addr | string | "0.0.0.0:443" | Адрес прослушивания QUIC (UDP) |
cert_pem | string | — | Путь к TLS-сертификату (формат PEM) |
key_pem | string | — | Путь к приватному ключу TLS (формат PEM) |
WARNING
HTTP/3 требует действующих TLS-сертификатов. При enabled = true оба поля cert_pem и key_pem должны быть установлены.
Настройки безопасности ([security])
Конфигурация безопасности Admin API и прокси.
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
admin_ip_allowlist | string[] | [] | Список IP/CIDR, которым разрешён доступ к Admin API. Пустой означает разрешить всем. |
max_request_body_bytes | integer | 10485760 (10 МБ) | Максимальный размер тела запроса в байтах. Запросы, превышающие это значение, отклоняются с кодом 413. |
api_rate_limit_rps | integer | 0 | Ограничение скорости запросов к Admin API на IP (запросов в секунду). 0 означает отключено. |
cors_origins | string[] | [] | CORS разрешённые источники для Admin API. Пустой означает разрешить все источники. |
Настройки правил ([rules])
Конфигурация движка правил.
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
dir | string | "rules/" | Каталог, содержащий файлы правил |
hot_reload | boolean | true | Включить наблюдение за файловой системой для автоматической перезагрузки правил |
reload_debounce_ms | integer | 500 | Окно подавления дребезга для событий изменения файлов (миллисекунды) |
enable_builtin_owasp | boolean | true | Включить встроенные правила OWASP CRS |
enable_builtin_bot | boolean | true | Включить встроенные правила обнаружения ботов |
enable_builtin_scanner | boolean | true | Включить встроенные правила обнаружения сканеров |
Источники правил ([[rules.sources]])
Настройка нескольких источников правил (локальные каталоги или удалённые URL):
| Ключ | Тип | Обязательный | Описание |
|---|---|---|---|
name | string | Да | Имя источника (например, "custom", "owasp-crs") |
path | string | Нет | Путь к локальному каталогу |
url | string | Нет | Удалённый URL для получения правил |
format | string | Да | Формат правил: "yaml", "json" или "modsec" |
update_interval | integer | Нет | Интервал автоматического обновления в секундах (только для удалённых источников) |
[[rules.sources]]
name = "custom"
path = "rules/custom/"
format = "yaml"
[[rules.sources]]
name = "owasp-crs"
url = "https://example.com/rules/owasp.yaml"
format = "yaml"
update_interval = 86400Настройки CrowdSec ([crowdsec])
Интеграция с разведкой угроз CrowdSec.
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
enabled | boolean | false | Включить интеграцию CrowdSec |
mode | string | "bouncer" | Режим интеграции: "bouncer", "appsec" или "both" |
lapi_url | string | "http://127.0.0.1:8080" | URL CrowdSec LAPI |
api_key | string | "" | API-ключ Bouncer |
update_frequency_secs | integer | 10 | Интервал обновления кеша решений (секунды) |
fallback_action | string | "allow" | Действие при недоступности LAPI: "allow", "block" или "log" |
appsec_endpoint | string | — | URL эндпоинта AppSec для HTTP-инспекции (необязательно) |
appsec_key | string | — | API-ключ AppSec (необязательно) |
Конфигурация хостов ([[hosts]])
Статические записи хостов (могут также управляться через Admin UI/API):
| Ключ | Тип | Обязательный | Описание |
|---|---|---|---|
host | string | Да | Доменное имя для сопоставления |
port | integer | Да | Порт прослушивания (обычно 80 или 443) |
remote_host | string | Да | IP или hostname апстрим-бэкенда |
remote_port | integer | Да | Порт апстрим-бэкенда |
ssl | boolean | Нет | Использовать HTTPS для апстрима (по умолчанию: false) |
guard_status | boolean | Нет | Включить защиту WAF (по умолчанию: true) |
Настройки кластера ([cluster])
Конфигурация многоузлового кластера. Подробнее см. в Кластерном режиме.
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
enabled | boolean | false | Включить кластерный режим |
node_id | string | "" (авто) | Уникальный идентификатор узла. Генерируется автоматически, если пустой. |
role | string | "auto" | Роль узла: "auto", "main" или "worker" |
listen_addr | string | "0.0.0.0:16851" | Адрес прослушивания QUIC для межузловой коммуникации |
seeds | string[] | [] | Адреса seed-узлов для присоединения к кластеру |
Криптография кластера ([cluster.crypto])
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
ca_cert | string | — | Путь к CA-сертификату (PEM) |
ca_key | string | — | Путь к приватному ключу CA (только для главного узла) |
node_cert | string | — | Путь к сертификату узла (PEM) |
node_key | string | — | Путь к приватному ключу узла (PEM) |
auto_generate | boolean | true | Автоматически генерировать сертификаты при первом запуске |
ca_validity_days | integer | 3650 | Срок действия CA-сертификата (дни) |
node_validity_days | integer | 365 | Срок действия сертификата узла (дни) |
renewal_before_days | integer | 7 | Автоматически обновлять за столько дней до истечения |
Синхронизация кластера ([cluster.sync])
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
rules_interval_secs | integer | 10 | Интервал проверки версий правил |
config_interval_secs | integer | 30 | Интервал синхронизации конфигурации |
events_batch_size | integer | 100 | Сбрасывать пакет событий при достижении этого количества |
events_flush_interval_secs | integer | 5 | Сбрасывать события даже если пакет не заполнен |
stats_interval_secs | integer | 10 | Интервал отчётности по статистике |
events_queue_size | integer | 10000 | Размер очереди событий (при заполнении удаляет старые) |
Выборы кластера ([cluster.election])
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
timeout_min_ms | integer | 150 | Минимальный таймаут выборов (мс) |
timeout_max_ms | integer | 300 | Максимальный таймаут выборов (мс) |
heartbeat_interval_ms | integer | 50 | Интервал heartbeat от главного к рабочим (мс) |
phi_suspect | float | 8.0 | Порог подозрения детектора отказов Phi accrual |
phi_dead | float | 12.0 | Порог смерти детектора отказов Phi accrual |
Здоровье кластера ([cluster.health])
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
check_interval_secs | integer | 5 | Частота проверки здоровья |
max_missed_heartbeats | integer | 3 | Помечать пир как нездоровый после N пропусков |
Полная конфигурация по умолчанию
Для справки см. файл default.toml в репозитории.
Следующие шаги
- Обзор конфигурации — как уровни конфигурации работают вместе
- Развёртывание кластера — конфигурация для кластера
- Движок правил — настройки движка правил в деталях