Thank you for reading this post, don't forget to subscribe!
Есть следующая схема, 2 haproxy и 1 virtual ip между ними.
запросы прилетают на 1 порт 9090 на котором висит ssl и балансирует всё на внутренние ip адреса на порт 8080:
frontend app_main
bind *:9090 ssl crt /etc/haproxy/ssl_wildcard.pem
mode http
option forwardfor header X-Real-IP
default_backend app_main_backend
backend app_main_backend
mode http
balance roundrobin
server server1 192.168.1.15:8080 check port 8080 check inter 5000
server server2 192.168.1.16:8080 check port 8080 check inter 5000
появилась задача раскидать location говно кодеров на другие бекенды. для этого оставляем текущую конфигурацию как есть, но дополняем её
frontend app_main
bind *:9090 ssl crt /etc/haproxy/ssl_wildcard.pem
mode http
option forwardfor header X-Real-IP
default_backend app_main_backend
acl portal path_beg /portal
acl market path_beg /market
acl social_networks path_beg /social_networks
use_backend baddeveloper if portal
use_backend baddeveloper if market
use_backend baddeveloper if social_networks
backend app_main_backend
mode http
balance roundrobin
server server1 192.168.1.15:8080 check port 8080 check inter 5000
server server2 192.168.1.16:8080 check port 8080 check inter 5000
backend baddeveloper
mode http
balance roundrobin
option forwardfor
server server1_baddeveloper 192.168.1.17:8080 check port 8080 check inter 5000
server server2_baddeveloper 192.168.1.18:8080 check port 8080 check inter 5000
после чего проверяем конфиг
haproxy -c -V -f /etc/haproxy/haproxy.cfg
если всё ОК то релоадим haproxy:
systemctl reload nginx