У меня есть два бэкэнда, которые представляют собой один и тот же сервер, на котором работают два одинаковых образа Docker, но каждый с другим портом. То есть на внутреннем сервере единственное различие между ними — сопоставление портов. Мой балансировщик нагрузки (HAProxy) — это отдельная физическая машина с адресом 10.0.0.2.
интерфейс http-in
привязать *:80
привязать *: 443 ssl crt /etc/ssl/mydomain.com/both.pem
схема перенаправления http-запроса https, если только { ssl_fc }
acl восемьдесят_http hdr(хост) -m beg -i восемьдесят.
acl восемьдесятсот_http hdr(хост) -m beg -i восемьдесятсот.
use_backend восемьдесят, если восемьдесят_http
use_backend восемьдесятсот, если восемьдесятсот_http
бэкэнд восемьдесят
сервер двадцать 10.0.0.20:80 проверьте maxconn 300
бэкэнд восемьдесятсот
сервер двадцать 10.0.0.20:8000 проверьте maxconn 300
Когда я sudo systemctl перезапускаю haproxy, он говорит мне, что «у бэкэнда восемьдесят сотен нет доступных серверов!» Однако я могу успешно скрутить оба порта из балансировщика нагрузки.
Я вставил в iptables следующее:
sudo iptables -A ВЫВОД -p TCP -d 10.0.0.0/16 --sport 8000 -j ПРИНЯТЬ
... и для селинукса:
sudo semanage port --add --type http_port_t --proto tcp 8000
ни то, ни другое не имело значения.
Что мне здесь не хватает?