У нас есть haproxy, который загружает два сервера: app1 и app2. Мы установили весы для каждого из них, например, app1 имеет вес 255, а другой - app2 0. Если какой-либо случай app1 идет вниз, как перенести сеанс и соединение на приложение без изменений. Можем ли мы достичь этого через хапрокси. Мы присоединяем нашу HAproxy конфиг ниже любезно вести насHaproxy Session Transfer
global
log 127.0.0.1 local0
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
stats socket /etc/haproxy/haproxysock level admin
daemon defaults
mode http
log global
option dontlognull
option http-server-close
option httplog
option redispatch
timeout connect 10000
timeout client 300000
timeout server 300000
maxconn 60000
retries 3
stats uri /haproxy_stats
stats realm HAProxy\ Statistics
stats auth hadmin:unMetric_2012
frontend main *:5000
acl is_app path_beg -i /static /images /javascript /stylesheets /js
acl is_app path_end -i .jpg .gif .png .css .js
acl is_app path_end -i /app/
use_backend app if is_app
default_backend app backend static
balance roundrobin
server static 127.0.0.1:4331 check backend app option httpchk GET /app
balance roundrobin
reqrep ^([^\ :]*)/app((/?.*)*) \1/app\2
cookie uid preserve indirect
stick-table type string len 40 size 5M expire 60m
stick store-response set-cookie(sid) table app stick on cookie(sid) table app
stick on url_param(sid) table app server app1 demo1.unmetric.com:8080 cookie s1 weight 255 check
server app2 demo2.unmetric.com:8080 cookie s2 weight 0 check