Я знаю, что можно сделать соединения неактивными, основываясь на параметре url: https://serverfault.com/questions/495049/using-url-parameters-for-load-balancing-with-haproxy?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
Можно ли также сделать это на основе идентификатора в пути URL?
ЕслиМой URL-адрес: / objects /: objectId
Могу ли я каким-то образом использовать это: objectId, чтобы сделать соединение липким?
EDIT
Я смогчтобы балансировать нагрузку, делая запрос привязанным к пути URL-адреса, используя следующую конфигурацию:
global
#daemon
maxconn 256
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in
bind *:80
default_backend servers
backend servers
balance roundrobin
stick-table type string size 200k expire 30m
stick on path
server server1 127.0.0.1:8000
server server2 127.0.0.1:8001
listen stats
bind 127.0.0.1:9000
mode http
log global
maxconn 10
stats enable
stats hide-version
stats refresh 5s
stats show-node
stats auth admin:password
stats uri /haproxy?stats
Проблема теперь в том, что если один из серверов выйдет из строя, таблица-стик не обновится.Как я могу сделать так, чтобы, если один из серверов не был доступен, записи в карте памяти, которые указывают на этот сервер, были удалены?
Окончательный ответ
Хорошо, я смог понять это.Приведенная ниже конфигурация заставляет запросы придерживаться пути URL-адреса, и HAProxy будет выполнять HTTP-GET для / health каждые 250 мс, а если он не возвращает 200, он будет считать, что сервер не работает, и это удалит все записи из флешки.стол.
global
daemon
maxconn 256
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in
bind *:80
default_backend servers
backend servers
balance roundrobin
stick-table type string size 200k expire 30m
option httpchk GET /health
http-check expect status 200
stick on path,word(2,/) if { path_beg /objects/ }
server server1 127.0.0.1:8000 check inter 250
server server2 127.0.0.1:8001 check inter 250
listen stats
bind 127.0.0.1:9000
mode http
log global
maxconn 10
stats enable
stats hide-version
stats refresh 5s
stats show-node
stats auth admin:password
stats uri /haproxy?stats