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é

Reply via email to