Недавно потребовался load balancer, который прост в настройке (привет любителям пописать конфиги в nginx) и удобен в установке. Выбор пал на HA Proxy — очень удобный TCP, HTTP прокси и load balancer сервер. Также было важно правильно настроить сервер в режиме SSL Passthrough ну и для удобства развёртывния чтобы можно было использовать Docker.
Получился следующий конфигурационный файл haproxy.cfg:
frontend localhost bind *:80 bind *:443 option tcplog mode tcp default_backend nodes backend nodes mode tcp balance roundrobin option ssl-hello-chk server node01 x.x.x.x:port check server node02 x.x.x.x:port check
Ну и для запуска потребуется всего одна команда:
docker run --name balancer -d -p 80:80 -p 443:443 -v /your-local-dir-to-proxy:/usr/local/etc/haproxy:ro haproxy:1.7
Дополнительно возможно также сделать редирект HTTP->HTTPS и настроить health check для наших нод.