Разница между интерфейсом /backend и прослушиванием в haproxy

Надеюсь, простой вопрос. Прошу прощения, если это было рассмотрено ранее. Я изучаю haproxy, и в целом кажется очень простым и простым. Однако мне любопытно, какая разница между использованием блоков frontend/backend и listen config? Мое предположение заключается в том, что прослушивание проще для базовых конфигураций, в то время как интерфейс/бэкэнд более продвинутый, позволяющий динамически переключаться на бэкэнды или делиться бэкендами и т.д. Является ли это в двух словах?

Спасибо,

Ал

Ответ 1

Все три называются "прокси".

A listen представляет собой комбинированный frontend и backend. A listen имеет неявный default_backend сам, но интерфейсная логика listen может использовать другие бэкенды, а его бэкэнд-раздел может использоваться другими интерфейсами. По сути, он просто сохраняет конфигурацию более компактной для простых правил, но в остальном она почти такая же, как объявление отдельного интерфейса и бэкэнда с тем же именем, сохраняя вместе конфигурацию.

Раздел "listen" определяет полный прокси с его интерфейсом и бэкэнд части, объединенные в одну секцию. Это обычно полезно для трафика только TCP.

http://cbonte.github.io/haproxy-dconv/1.6/configuration.html#4

Это особенно полезно для TCP, потому что такие конфигурации обычно проще HTTP. Но прокси-сервер listen может использоваться для любого приложения.