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

проверка сервера haproxy% [dst_port]

Я хочу загружать запросы балансировки на один и тот же порт на трех бэкэндах. У меня есть около 20 портов для пересылки, поэтому мне нужен способ сделать его динамическим. Это для балансировки нагрузки наших серверов prod, pre-prod, qa, dev, unit test для нескольких доменов. Итак, да, я могу сделать это, используя 20 бэкэндов, 20 acls и 20 use_backends. Но тогда забудьте об этом. Слишком много хлопот.

Таким образом, я хотел бы использовать переменную для обозначения «запрошенного порта». Я попробовал% [dst_port], потому что это работало в другой ситуации.

Я где-то читал один ответ от Willy T, что, если не указывать порт, он просто перенаправляется на тот же порт.

Но ему по-прежнему нужен либо сервисный порт, либо контрольный порт, о котором я не знаю заранее, если я не привяжусь к 20 различным интерфейсам.

Ошибка: сервер X не имеет ни сервисного порта, ни порта проверки, ни правила tcp_check «подключиться» с информацией о порте. Проверка отключена.

например.

listen load-balance
     bind :28080 
     bind :42080 
     bind :48080 
     bind :58080 
     bind :38080 
     mode http
     balance roundrobin
     option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost
     server X 10.20.30.1 check %[dst_port]
     server Y 10.20.30.2 check %[dst_port]
     server Z 10.20.30.3 check %[dst_port]

Видите ли, ему нужна переменная. Это возможно?

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

Вам нужно настроить его с помощью

 server X 10.20.30.1 check port 80
 server Y 10.20.30.2 check port 80
 server Z 10.20.30.3 check port 80

Вы можете установить только один порт для проверки работоспособности или использовать «команду external-check» для проверки вашего сервера с помощью собственного скрипта ...