> ## Documentation Index
> Fetch the complete documentation index at: https://docs.axottle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Парк HAProxy

> Серверы, подключения, пулы, применение через Flow и ротация портов с окном совместимости.

Откройте **Flow Studio → Парк HAProxy**:
`/new/connection-units?section=haproxy`. Парк принадлежит текущему проекту.
Серверы и пулы используются несколькими Flow; старые маршрутные записи
доступны через «Прежние конфигурации».

## Подготовка и применение

1. Создайте сервер общим пошаговым мастером и выберите ноду из парка.
   Используйте известные адреса из инвентаризации ноды.
2. Добавьте именованное подключение: адрес, порт, лимит соединений и при
   необходимости ограничения upload/download. Bind и source находятся
   в дополнительных настройках.
3. Для балансировки создайте пул из подключений серверов. Укажите веса,
   резервных участников, алгоритм и проверки доступности.
4. На холсте Flow выберите сервер с подключением либо пул. Направление
   трафика задаётся связями блоков; отдельная маршрутная запись не требуется.
5. Выполните Compile, проверьте план и запустите Apply Flow.

Сохранение парка записывает настройки в БД. Оно не устанавливает HAProxy
и не применяет конфигурацию на нодах. Compile заново разрешает ссылки
в текущем проекте, включает версии ресурсов в план и проверяет конфликты.
Apply проверяет возможности Agent, listeners и firewall перед изменением runtime.
Если ресурс изменился после проверки плана, подготовьте актуальный план.

У созданного сервера открывается страница управления: **Обзор / Подключения /
Ограничения / Настройки**. У пула — **Состав / Балансировка / Проверки доступности**.
Редактирование выполняется в соответствующем разделе с явным сохранением.
Используемый ресурс или подключение нельзя удалить, пока на него ссылается
текущий черновик либо активный снимок Flow.

## Операции и ротация порта

Для привязки к применённому Flow доступны проверка HAProxy, drain и возврат
в работу. Результат определяется завершённой задачей Agent; доступность самого
агента не доказывает работоспособность HAProxy. Повтор операции с тем же
`request_key` не создаёт независимую задачу; изменение параметров с прежним
ключом отклоняется.

У подключения можно настроить диапазон портов, интервал в часах и окно
совместимости в минутах. Ручная и плановая ротация требуют хотя бы одного
применённого Flow. Выбирается порт, свободный в каталоге парка, затем запускается
обычный Apply с проверкой фактической конфигурации. Обновляются все применённые
Flow, использующие подключение, в том числе через пул.

Последовательность состояния: `queued → applying → overlap → cleaning → succeeded`.
Во время `overlap` работают новый и старый listeners; после окна совместимости
старый удаляется. Ошибка первого применения запускает возврат основного порта;
ошибка очистки — восстановление listener совместимости. Проверьте `failed`,
текст ошибки и результаты затронутых Flow: запрос отката ещё не подтверждает
успешное восстановление на каждой ноде.

Не запускайте следующую ротацию, пока предыдущая активна. На один listener
допускается одна незавершённая операция. Клиентам со старой подпиской требуется
обновить её до завершения окна совместимости.

## Ограничения

* Пул не создаёт VIP или DNS автоматически. Первый публичный вход пока
  требует одного сервера.
* Ограничение скорости общее для подключения одного процесса HAProxy.
  Оно не является квотой пользователя VLESS или общим бюджетом всего пула;
  старый и новый процессы при reload не делят один бюджет.
* Agent должен подтвердить `bandwidth_limits`, `weighted_backends` и
  `port_overlap` для соответствующих возможностей. Неподдерживаемая настройка
  не должна молча пропускаться.
* Действующая TCP-сессия не переносится на другой сервер при аварии.
* Квоты, автоматические сценарии Guard для парка и расширенные maintenance
  windows из продуктовой спецификации не следует считать готовыми по наличию UI.

## Проверка

После сохранения убедитесь, что сервер, подключение и пул отображаются
в нужном проекте. Проверьте план и результат Apply каждого связанного Flow.
Запустите проверку HAProxy и проверьте клиентский маршрут через публичный вход.
При ротации проверьте работу нового и старого портов в течение окна
совместимости и завершение очистки после него.

## Откат

Неприменённые настройки можно вернуть прежними значениями и сохранить.
После изменения работающего маршрута подготовьте и примените исправленный
план для затронутых Flow. При ошибке ротации сначала изучите результат
возврата порта; успешное сохранение настроек не подтверждает восстановление
runtime. Не удаляйте старый listener вручную до проверки клиентских подключений.

Для инфраструктуры вне управления Axottle используйте внешний вход
HAProxy или DNAT; импорт такого сервиса не выдаёт панели право управлять им.

<Note>Сверено с кодом Axottle на 2026-09-22. Возможности зависят от установленной сборки; живой сетевой прогон в рамках этой сверки не выполнялся.</Note>
