LINUX.ORG.RU
ФорумAdmin

HAProxy: проверка бекэнда по разным портам

 ,


0

1

Привет.

Есть лоад балансер и 2 backend-a (2 сервера с нгинкс+апач+мариадб галера на каждом). В данный момент haproxy проверяет только 80й порт:

frontend www
        bind 192.168.0.1:80
        default_backend ll-backend


backend ll-backend
        balance roundrobin
        mode http
        option http-server-close
        timeout http-keep-alive 3000
        option forwardfor header X-Real-IP
        server s1 192.168.0.10:80 check
        server s2 192.168.0.11:80 check

Можно ли сделать так, чтобы haproxy проверял еще порты 81 (апач) и 3306, т.е. и переключался на рабочий сервер при падении апача и/или мускуля?


Да можно , через xinetd например.

service mysqlchk_3306
{
        flags           = REUSE
        socket_type     = stream
        port            = 9101
        wait            = no
        user            = root
        server          = /etc/haproxy/test_db_3306.sh
        log_on_failure  += USERID
        disable         = no
        #only_from       = 10.78.117.86/24 127.0.0.1 192.168.200.0/24
}

anonymous ()
Ответ на: комментарий от anonymous

cat /etc/haproxy/test_db_3306.sh

ERROR_MSG=`/usr/bin/mysql --protocol=TCP --host=$MYSQL_HOST --port=$MYSQL_PORT --user=$MYSQL_USERNAME --password=$MYSQL_PASSWORD -e "show databases;" 2>/dev/null`

#
# Check the output. If it is not empty then everything is fine and we return
# something. Else, we just do not return anything.
#
if [ "$ERROR_MSG" != "" ]
then
        # mysql is fine, return http 200
        /bin/echo -e "HTTP/1.1 200 OK\r\n"
        /bin/echo -e "Content-Type: Content-Type: text/plain\r\n"
        /bin/echo -e "\r\n"
        /bin/echo -e "MySQL is running.\r\n"
        /bin/echo -e "\r\n"
else
        # mysql is fine, return http 503
        /bin/echo -e "HTTP/1.1 503 Service Unavailable\r\n"
        /bin/echo -e "Content-Type: Content-Type: text/plain\r\n"
        /bin/echo -e "\r\n"
        /bin/echo -e "MySQL is *down*.\r\n"
        /bin/echo -e "\r\n"
fi
Ну ты понял

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.