Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

Конфигурация Reverse Proxy

PRX-WAF действует как reverse proxy, перенаправляя запросы клиентов на апстрим-бэкенд серверы после прохождения через конвейер обнаружения WAF. На этой странице описана маршрутизация хостов, балансировка нагрузки и конфигурация прокси.

Конфигурация хостов

Каждый защищённый домен требует записи хоста, которая сопоставляет входящие запросы с апстрим-бэкендом. Хосты можно настроить тремя способами:

Через TOML-файл конфигурации

toml
[[hosts]]
host        = "example.com"
port        = 80
remote_host = "10.0.0.1"
remote_port = 8080
ssl         = false
guard_status = true

Через Admin UI

  1. Перейдите в Hosts в боковой панели
  2. Нажмите Add Host
  3. Заполните данные хоста
  4. Нажмите Save

Через REST API

bash
curl -X POST http://localhost:9527/api/hosts \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "host": "example.com",
    "port": 80,
    "remote_host": "10.0.0.1",
    "remote_port": 8080,
    "ssl": false,
    "guard_status": true
  }'

Поля хоста

ПолеТипОбязательныйОписание
hoststringДаДоменное имя для сопоставления (например, example.com)
portintegerДаПорт прослушивания (обычно 80 или 443)
remote_hoststringДаIP или hostname апстрим-бэкенда
remote_portintegerДаПорт апстрим-бэкенда
sslbooleanНетИспользует ли апстрим HTTPS (по умолчанию: false)
guard_statusbooleanНетВключить защиту WAF для этого хоста (по умолчанию: true)

Балансировка нагрузки

PRX-WAF использует взвешенную балансировку нагрузки round-robin по апстрим-бэкендам. Когда для хоста настроено несколько бэкендов, трафик распределяется пропорционально их весам.

INFO

Несколько апстрим-бэкендов для хоста можно настроить через Admin UI или API. TOML-файл конфигурации поддерживает записи хостов с одним бэкендом.

Заголовки запросов

PRX-WAF автоматически добавляет стандартные заголовки прокси к проксируемым запросам:

ЗаголовокЗначение
X-Real-IPОригинальный IP-адрес клиента
X-Forwarded-ForIP клиента (добавляется к существующей цепочке)
X-Forwarded-Protohttp или https
X-Forwarded-HostИсходное значение заголовка Host

Ограничение размера тела запроса

Максимальный размер тела запроса управляется конфигурацией безопасности:

toml
[security]
max_request_body_bytes = 10485760  # 10 МБ

Запросы, превышающие этот лимит, отклоняются с ответом 413 Payload Too Large до достижения конвейера WAF.

Управление хостами

Список всех хостов

bash
curl -H "Authorization: Bearer $TOKEN" http://localhost:9527/api/hosts

Обновить хост

bash
curl -X PUT http://localhost:9527/api/hosts/1 \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"guard_status": false}'

Удалить хост

bash
curl -X DELETE http://localhost:9527/api/hosts/1 \
  -H "Authorization: Bearer $TOKEN"

Правила на основе IP

PRX-WAF поддерживает правила разрешения и блокировки на основе IP, которые оцениваются в Фазах 1-4 конвейера обнаружения:

bash
# Добавить правило белого списка IP
curl -X POST http://localhost:9527/api/rules/ip \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ip": "10.0.0.0/8", "action": "allow"}'

# Добавить правило чёрного списка IP
curl -X POST http://localhost:9527/api/rules/ip \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ip": "203.0.113.50", "action": "block"}'

Следующие шаги

Released under the Apache-2.0 License.