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

Nginx с keepalived

У меня есть 2 сервера nginx, которые обрабатывают 1) обратный прокси и 2) балансировку нагрузки на двух веб-серверах. Поскольку я не могу предоставить клиенту IP-адрес какой-либо из машин nginx, поэтому я подумал о том, чтобы поддерживать активность поверх 2-х машин Nginx с VIP, он также проверяет отказоустойчивость Nginx.

Чего я достиг 1) Успешно установил nginx на 2 машины, поэтому, когда я нажимаю любой IP-адрес сервера nginx, я могу видеть веб-страницу приложения. Даже я тестировал отказ, он работает нормально.

2) Я установил keepalived на обеих машинах и попытался создать VIP со следующей конфигурацией

vrrp_script chk_nginx {
        script "killall -0 nginx"
        interval 2
}

vrrp_instance VI_1 {
        interface eth0:1
        state MASTER
        virtual_router_id 51
        priority 100
unicast_src_ip server1_ip
unicast_peer {
server2_ip
}
        virtual_ipaddress {
                VIP
        }
        track_script {
                chk_nginx
        }
}

-> Итак, когда я нажимаю VIP в веб-браузере, я получаю следующую ошибку: Этот сайт недоступен

VIP отказался подключиться. Попробуйте: Проверка соединения Проверка прокси и брандмауэра

Не уверен, что мне здесь не хватает. Может ли кто-нибудь помочь мне решить эту проблему. Итак, насколько я понимаю, когда я нажимаю VIP, я должен видеть веб-страницу приложения?

С уважением VG

Что ж, проблема была в keepaived conf. Я упомянул неправильную проверку скрипта в конфигурации. Итак, для тестирования сначала я удалил скрипт stenza, все работает нормально. Затем я изменил свой скрипт и поместил стензу в keepalived.conf. Итак, чтобы быть более конкретным, вот как выглядит мой сценарий

nginx.sh
if [ ! `ps -ec | grep nginx | awk '{ print $1 }'` ]; then service nginx start; fi;

Раньше мне не хватало точки с запятой в этом скрипте. Надеюсь, это кому-то поможет.