Назад | Перейти на главную страницу

haproxy ACL - как маршрутизировать трафик на основе порта или адреса назначения

Приложение на клиенте (192.168.1.106) пытается получить доступ к службе 192.168.1.10:8080. Запись в журнале этого запроса приведена ниже. Я хотел бы настроить haproxy для отправки этого запроса напрямую 192.168.1.10:8080 вместо использования backend privoxy-back.

Я почти уверен, что мне нужно добавить ACL в мою конфигурацию haproxy, но я считаю, что документация слишком обширна для этой конкретной проблемы. Некоторые из сообщений StackExchange ниже близки, но это не совсем то, что я ищу.

Не могли бы вы помочь мне понять, что здесь нужно делать?

Feb  9 07:21:24 localhost.localdomain haproxy[21851]: 192.168.1.106:49326 
[09/Feb/2018:07:21:24.199] privoxy-front privoxy-back/proxy02 89/0/0/-1/91 -1 
132 - - SD-- 129/129/129/128/0 0/0 "GET http://192.168.1.10:8080/ HTTP/1.1"

frontend privoxy-front
 bind :8118
 mode http
 default_backend privoxy-back

backend privoxy-back
 mode http
 option forwardfor
 server proxy01 192.168.20.62:8118 check backup
 server proxy02 192.168.25.72:8118 check

Это сообщения, которые я уже проверял и не работал.

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

  1. Настройте интерфейс, который запускает желаемый порт
  2. Настройте бэкэнд, на котором настроен фактический сервер, для которого вы хотите использовать прокси.
  3. Свяжите созданный фронтенд с бэкэндом

Итак, ваша конфигурация почти верна. Учитывая следующие предположения

  1. IP клиента 192.168.1.106
  2. IP-адрес сервера приложений, к которому подключается клиент, - 192.168.1.10 на порту 8080.
  3. Фактический сервер приложений (независимо от того, какое приложение вы хотите использовать прокси) IP и порты 192.168.20.62:8118 и 192.168.25.72:8118

Ваша конфигурация должна быть такой, как показано ниже, и ваш HAProxy должен работать на 192.168.1.10:

frontend privoxy-front
 bind :8080
 mode http
 default_backend privoxy-back

backend privoxy-back
 mode http
 option forwardfor
 server applicationServer1 192.168.20.62:8118 check
 server applicationServer2 192.168.25.72:8118 check

Я удалил backup потому что это будет означать, что трафик направляется только на этот сервер, если все остальные серверы не работают.