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

Haproxy с несколькими портами на внешнем и внутреннем интерфейсе

У меня есть задача настроить 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 и т. Д. Что касается проверки работоспособности, либо проверьте один порт - либо, возможно, используйте сценарий внешней проверки работоспособности, если вам нужно что-то более сложное, т.е. многопортовая проверка.