У меня есть 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;
Раньше мне не хватало точки с запятой в этом скрипте. Надеюсь, это кому-то поможет.