HAProxy - маршрутизация к внутреннему IP на основе URL / пути? - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь использовать HAProxy в качестве динамического прокси-сервера для внутренних хостов на основе частичного / пути регулярного выражения.Вариант использования - маршрутизация от внешнего интерфейса HTTPS к большому количеству узлов, которые приходят и уходят часто, без сохранения явного сопоставления / path с именами хостов сервера.

В частности, в этом случае узлы являются членами AmazonEMR кластер, и я хотел бы обратного прокси / переписать HTTP-запросы, такие как:

<haproxy>/emr/ip-99-88-77-66:4040               -> 99.88.77.66:4040
<haproxy>/emr/ip-55-44-33-22/ganglia            -> 55.44.33.22/ganglia
<haproxy>/emr/ip-11-11-11-11:8088/cluster/nodes -> 11.11.11.11:8088/cluster/nodes
...etc

динамически.

Как раз, проанализируйте путь, начинающийся с / emr, и запросы прокси к IP-адресу, захваченному регулярным выражением:

emr\/ip-(\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3})(.*)

Возможно ли это с HAProxy?Я знаю, что это, вероятно, не правильный инструмент для работы, но если возможно (даже неэффективно), я бы хотел использовать инструменты, которые у нас уже есть.

tl; dr в основном nginx proxy_pass, но с HAProxy и извлечением внутреннего IP-адреса из URL.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 02 февраля 2019

Да, это можно сделать.Я бы порекомендовал вам использовать ACL, а также Roundrobin и проверки, которые позволят вам проверить, работает ли этот экземпляр, прежде чем направлять его с проверкой.Таким образом, система будет маршрутизировать только те экземпляры служб, которые находятся в рабочем состоянии, и предварительно загружать их для использования только в том случае, если они включены.

Кроме того, это также позволит вам постоянно включаться и выключаться.экземпляры, например, если ваши затраты на экземпляр AWS изменяются с любыми другими поставщиками, которые у вас есть, и позволяют вам балансировать нагрузку с учетом максимальной экономии затрат.

0 голосов
/ 05 февраля 2019

да, это возможно .. проверьте официальное руководство:

Использование ACL и выборка образцов

0 голосов
/ 01 февраля 2019

Да, это возможно при использовании URL-фильтров в haproxy, см. Ссылку ниже для получения более подробной информации.https://fossies.org/linux/haproxy/doc/internals/filters.txt

...