Hi.

After successfully disable a backend node for maintenance at run time,
I see new connections coming. I would like below behaviour:

1. Mark node as down for maintenance

2. Currently active connections to this node to finish

3. DO NOT allow new connections comming

Is this possible with haproxy? Below my config.

Thanks

Javier

----------------------------------------------------------------------------------------------------------------

/etc/haproxy/haproxy.cfg

global
        log             127.0.0.1       local1
        maxconn 4096
        user haproxy
        group haproxy
        daemon
        spread-checks 2%
        stats socket /tmp/haproxy_stats level admin

defaults
        log global
        mode tcp
        option dontlognull
        timeout connect 5000ms
        timeout client 50000ms
        timeout server 50000ms

listen mysql balancer.dev.jj.com:3306
        mode tcp
        balance roundrobin
        option tcpka
        option httpchk
        option mysql-check my_user
        log global
        option log-separate-errors
        server mysql-2.dev.jj.com mysql-2.dev.jj.com:3306 inter 1s rise 1 fall 1
        server mysql-3.dev.jj.com mysql-3.dev.jj.com:3306 inter 1s rise 1 fall 1

----------------------------------------------------------------------------------------------------------------

clear;echo "disable server mysql/mysql-3.dev.jj.com" | socat
unix-connect:/tmp/haproxy_stats stdio

----------------------------------------------------------------------------------------------------------------

/var/log/haproxy_1.log

Oct 16 09:17:56 localhost haproxy[23598]: Server
mysql/mysql-3.dev.jj.com is DOWN for maintenance.

----------------------------------------------------------------------------------------------------------------

mysql> show processlist;

+------+-------------+-----------------------------+--------+-------------+-------+-----------------------------------------------------------------------+------------------+
| Id   | User        | Host                        | db     | Command
   | Time  | State
            | Info             |
+------+-------------+-----------------------------+--------+-------------+-------+-----------------------------------------------------------------------+------------------+
| 1896 | system user |                             | NULL   | Connect
   | 45753 | Waiting for master to send event
            | NULL             |
| 1897 | system user |                             | NULL   | Connect
   |     1 | Has read all relay log; waiting for the slave I/O thread
to update it | NULL             |
| 1898 | replication | mysql-2.dev.jj.com:50466    | NULL   | Binlog
Dump | 45729 | Has sent all binlog to slave; waiting for binlog to be
updated        | NULL             |
| 2110 | root        | localhost                   | NULL   | Query
   |     0 | NULL
            | show processlist |
| 2195 | zabbix      | balancer-2.dev.jj.com:48550 | zabbix | Sleep
   |     2 |
            | NULL             |
| 2196 | zabbix      | balancer-2.dev.jj.com:48552 | zabbix | Sleep
   |     2 |
            | NULL             |
| 2197 | zabbix      | balancer-2.dev.jj.com:48554 | zabbix | Sleep
   |     1 |
            | NULL             |
| 2198 | zabbix      | balancer-2.dev.jj.com:48556 | zabbix | Sleep
   |     0 |
            | NULL             |
| 2199 | zabbix      | balancer-2.dev.jj.com:48558 | zabbix | Sleep
   |     5 |
            | NULL             |
| 2200 | zabbix      | balancer-2.dev.jj.com:48560 | zabbix | Sleep
   |     1 |
            | NULL             |
+------+-------------+-----------------------------+--------+-------------+-------+-----------------------------------------------------------------------+------------------+
10 rows in set (0.00 sec)

Reply via email to