У меня есть задача настроить haproxy, который проксирует входящий трафик на несколько портов. Это то, что я сделал после некоторого поиска в Google: я легко понял, как связать порты во внешнем интерфейсе, поскольку в Интернете полно примеров. Но почти нет информации о том, как настроить для этого бэкенды.
Когда в строке сервера всего один порт, я использовал ":" и номер порта. как: 443 или: 80. Но тут я предположил, что надо вынуть порт и отправить только на сервер. Не уверен, что это правильно ??? Также проверьте параметр - я не смог показать, чтобы проверить наличие обоих портов, поэтому выбрал один. Но я уверен, что должен быть лучший способ сделать это.
Кто-нибудь может помочь?
frontend FE-VPN
bind 10.10.90.10:500
bind 10.10.90.10:4500
mode tcp
log global
option tcplog
option dontlognull
option contstats
timeout client 300s
maxconn 10000
default_backend BK-VPN
backend BK-VPN
mode tcp
log global
option tcplog
option tcp-check
timeout server 300s
timeout connect 5s
balance leastconn
retries 3
server DA-VPN-01 10.10.90.21 weight 1 check port 500 source 10.10.90.10
server DA-VPN-02 10.10.90.22 weight 1 check port 500 source 10.10.90.10
UPD Это лучшее, что я придумал. Скажите, пожалуйста, считаете ли вы это правильным
backend BK-VPN
mode tcp
log global
option tcplog
option tcp-check
tcp-check connect port 500
tcp-check expect string +OK
tcp-check connect port 4500
tcp-check expect string +OK
timeout server 300s
timeout connect 5s
balance leastconn
retries 3
server DA-VPN-01 10.10.90.21 weight 1 check source 10.10.90.10
server DA-VPN-02 10.10.90.22 weight 1 check source 10.10.90.10
Выглядит нормально. Если вы не укажете порт, он будет использовать тот же порт, что и во внешнем интерфейсе. Поэтому, если он достигнет 10.10.90.10:500 на интерфейсе, он перейдет к 10.10.90.21:500 и т. Д. Что касается проверки работоспособности, либо проверьте один порт - либо, возможно, используйте сценарий внешней проверки работоспособности, если вам нужно что-то более сложное, т.е. многопортовая проверка.