Назад | Перейти на главную страницу

KeepAliveD + HaProxy - только мастер должен запускать активную службу HaProxy

можно ли настроить keepalived так, чтобы активная служба от haproxy запускалась только на главном сервере?

В настоящее время LB1 и LB2 (как с keepalived, так и с haproxy) отлично работают. Но иногда некоторые запросы берутся из LB2 (который является резервным, и журналы также показывают это), что приводит к ошибке подключения в браузере.

Я отключил haproxy на LB2 (остановка сервиса haproxy), и все работает нормально. Но теперь, когда LB1 выходит из строя, LB2 переходит в мастер с не запущенной службой haproxy.

Я использую Ubuntu Server 14.04.

Метод получает название. Вы должны подать пример keepalived.conf (на обоих серверах:

notify /etc/keepalived/notify-keepalived.sh

И в notfiy-keepalived.sh следующий код:

#!/bin/bash
TYPE=$1
NAME=$2
STATE=$3
case $STATE in
        "MASTER") /usr/sbin/service haproxy start
                  ;;
        "BACKUP") /usr/sbin/service haproxy stop
                  ;;
        "FAULT")  /usr/sbin/service haproxy stop
                  exit 0
                  ;;
        *)        /sbin/logger "haproxy unknown state"
                  exit 1
                  ;;
esac

Теперь keepalived будет выполнять команды при входе в одно из трех состояний.