Как пробросить (проксировать) запрос с клиента в консоль сервера приложений WLS с помощью haproxy?

Исходные данные:

  • балансировщик haproxy (1.1.1.1)
  • сервер приложений WLS1 (2.2.2.2, консоль управления http://2.2.2.2:7001/console)
  • сервер приложений WLS2 (3.3.3.3, консоль управления http://3.3.3.3:7001/console)
  • произвольная клиентская машина, которая не имеет доступ к WLS1 и WLS2

Необходимо пробросить (проксировать) запросы с клиентской машины на консоли управления WLS1 и WLS2. Варианты запросов в браузере с клиентской машины: http://1.1.1.1/cons1 - направлял запросы на http://2.2.2.2:7001/console http://1.1.1.1/cons2 - на http://3.3.3.3:7001/console

Что было испробовано:

1 вариант (как в условии):

frontend http_prx bind *:80 mode http acl cons1 path_beg /cons1 use_backend cons_1 if cons1 acl cons2 path_beg /cons2 use_backend cons_2 if cons2 default_backend http_other

backend cons_1 (варианты преобразования заголовка запроса) server cons1 2.2.2.2:7001 check

backend cons_2 (варианты преобразования заголовка запроса) server cons2 3.3.3.3:7001 check

Варианты преобразования заголовка запроса (способ rewrite):

http-request replace-value Host (попытка изменить адрес хоста запроса) http-request replace-value Path (попытка изменить URN c /cons1 на /console) и т.п.

2 вариант (использование прослушивания портов 7002/7003, запрос вида http://1.1.1.1:порт/console):

frontend cons1 mode http bind *:7002 acl cons path_beg /console use_backend cons_1 if cons default_backend http_other

frontend cons2 mode http bind *:7003 acl cons path_beg /console use_backend cons_2 if cons default_backend http_other

backend cons1 server cons1 2.2.2.2:7001 check

backend cons2 server cons1 3.3.3.3:7001 check

В итоге, результат - либо в запросе менялся только адрес хоста, либо URN, что в результате возвращает ошибку. Редирект - не вариант, т.к. у клиентской машины нет доступа к WLS1/WLS2. Буду благодарен за любую информацию, в каком направлении искать решение.


Ответы (0 шт):