Hi,
Le 22/08/2017 à 15:39, Stefan Sticht a écrit :
Hi,
if I place backend servers into maintainance mode (using hatop CLI )
they will still get connections. I believe this only happens with nbproc>1.
Can anyone tell me what I am doing wrong? HAProxy Version:
1.7.9-1ppa1~xenial
You gave the answer, the reason is that you're using nbproc 40.
Aug 22 15:31:30 w-fw1 haproxy[30821]: Server webserver/web1-ip1 is going
DOWN for maintenance. 11 active and 0 backup servers left. 0 sessions
active, 0 requeued, 0 remaining in queue.
Aug 22 15:31:34 w-fw1 haproxy[30821]: Server webserver/web1-ip2 is going
DOWN for maintenance. 10 active and 0 backup servers left. 0 sessions
active, 0 requeued, 0 remaining in queue.
Here, process 30821 received the CLI request and set the backend servers
into maintenance for its own instance. Processes don't share any
information between them.
Aug 22 15:31:37 w-fw1 haproxy[30820]: 212.29.0.220:45714
[22/Aug/2017:15:31:37.890] w~ webserver/web1-ip1 0/0/0/6/7 200 23812 - -
---- 0/0/0/0/0 0/0 "GET /n/main_app.php HTTP/1.1"
Aug 22 15:31:37 w-fw1 haproxy[30820]: 212.29.0.220:45714
[22/Aug/2017:15:31:37.890] w~ webserver/web1-ip1 0/0/0/6/7 200 23812 - -
---- 0/0/0/0/0 0/0 "GET /n/main_app.php HTTP/1.1"
Aug 22 15:31:40 w-fw1 haproxy[30820]: 212.29.0.220:45716
[22/Aug/2017:15:31:40.268] w~ webserver/web1-ip2 0/0/0/6/7 200 23812 - -
---- 0/0/0/0/0 0/0 "GET /n/main_app.php HTTP/1.1"
Aug 22 15:31:40 w-fw1 haproxy[30820]: 212.29.0.220:45716
[22/Aug/2017:15:31:40.268] w~ webserver/web1-ip2 0/0/0/6/7 200 23812 - -
---- 0/0/0/0/0 0/0 "GET /n/main_app.php HTTP/1.1"
Aug 22 15:31:41 w-fw1 haproxy[30819]: 212.29.0.220:45718
[22/Aug/2017:15:31:41.984] w~ webserver/web1-ip1 0/0/0/6/6 200 23812 - -
---- 0/0/0/0/0 0/0 "GET /n/main_app.php HTTP/1.1"
Aug 22 15:31:41 w-fw1 haproxy[30819]: 212.29.0.220:45718
[22/Aug/2017:15:31:41.984] w~ webserver/web1-ip1 0/0/0/6/6 200 23812 - -
---- 0/0/0/0/0 0/0 "GET /n/main_app.php HTTP/1.1"
Aug 22 15:31:43 w-fw1 haproxy[30820]: 212.29.0.220:45720
[22/Aug/2017:15:31:43.511] w~ webserver/web2-ip1 0/0/0/6/7 200 23812 - -
---- 0/0/0/0/0 0/0 "GET /n/main_app.php HTTP/1.1"
Aug 22 15:31:43 w-fw1 haproxy[30820]: 212.29.0.220:45720
[22/Aug/2017:15:31:43.511] w~ webserver/web2-ip1 0/0/0/6/7 200 23812 - -
---- 0/0/0/0/0 0/0 "GET /n/main_app.php HTTP/1.1"
Aug 22 15:31:45 w-fw1 haproxy[30820]: 212.29.0.220:45722
[22/Aug/2017:15:31:45.708] w~ webserver/web2-ip2 0/0/0/6/7 200 23812 - -
---- 0/0/0/0/0 0/0 "GET /n/main_app.php HTTP/1.1"
But here, processes 30820 and 30819 received the requests.
global
nbproc 40
If you want to use nproc 40 and use the CLI, you'll have to define 40
CLI sockets, bound to each process and send the command to each one.
backend webserver
mode http
balance roundrobin
http-reuse always
option redispatch
server web1-ip1 192.168.2.11:80 check source 192.168.2.113
non-stick inter 30s maxconn 102400
server web1-ip2 192.168.2.21:80 check source 192.168.2.114
non-stick inter 30s maxconn 102400
server web2-ip1 192.168.2.12:80 check source 192.168.2.115
non-stick inter 30s maxconn 102400
server web2-ip2 192.168.2.22:80 check source 192.168.2.116
non-stick inter 30s maxconn 102400
[...]
Thanks!
Stefan
--
Cyril Bonté