Skip to content

План развертывания Keepalived+Nginx

1. Обзор

Nginx может использоваться в качестве обратного прокси-сервера для обеспечения балансировки нагрузки, что позволяет нашим веб-серверам горизонтально масштабироваться для обработки большего количества пользовательских запросов.

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

Keepalived - это высокопроизводительный сервер высокой доступности или решение горячего резервирования, которое может быть использовано для предотвращения возникновения единой точки отказа сервера, с помощью Nginx можно добиться высокой доступности внешних веб-сервисов.

2. Планирование программы

Примечание: VIP - это виртуальный IP-адрес, который можно настраивать, не занимая его.

VIPIP-адрес сервераимя хоста (компьютера, подключенного к сети)порт nginxПо умолчанию Ведущий-ведомый
192.168.5.200192.168.5.249этан380МАСТЕР
192.168.5.200192.168.5.103localhost.localdomain80РЕЗЕРВНАЯ КОПИЯ

3. Программа для пользователей Экстранет

3.1 Установка Nginx

Установите и настройте Nginx на обоих серверах. Подробнее см. в разделе Установка и настройка Nginx в Linux.

3.2 Установка Keepalived

Keepalived установлен на обоих серверах.

Выполните команду:

yum -y install keepalived

3.3 Настройка запуска службы keepalived во время загрузки

Оба сервера должны выполнить следующее утверждение. Операторы показаны ниже:

chkconfig keepalived on

4.png

3.4 Изменение файла конфигурации Keepalived

Путь:/etc/keepalived/keepalived.conf

3.4.1 Файл конфигурации узла MASTER

!   
  
 Конфигурационный файл для keepalived global_defs { ## Оповещения по электронной почте, которые приходят с keepalived, требуют включения службы sendmail.  
  
   
 Рекомендуется использовать отдельный монитор или сторонний SMTP router_id ethan3 ## Строка, идентифицирующая этот узел, обычно имя хоста } ## keepalived будет регулярно выполняет сценарий и анализирует результаты для динамической настройки приоритета vrrp_instance. Если в результате выполнения скрипта получен 0, а вес конфигурации больше 0, приоритет будет соответственно увеличен. Если результат выполнения сценария не 0, а значение веса меньше 0, приоритет соответственно уменьшается.  
  
 Во всех остальных случаях сохраняется настроенный приоритет, то есть значение, соответствующее приоритету в конфигурационном файле. vrrp_script chk_nginx { script "/etc/keepalived/nginx_ check.sh" ## Определение приоритета сервера.  
  
 check.sh" ## Путь к скрипту для проверки состояния nginx интервал 2 ## Проверка интервала вес -20 ##  
  
  
  
 Вес -20, если условие выполняется } ## Определяем виртуальный маршрут, VI_1 - идентификатор виртуального маршрута, define name vrrp_instance VI_1 { state MASTER ## Master node is MASTER, corresponding backup node is MASTER.  
 MASTER ## Главный узел - MASTER, соответствующий резервный узел - BACKUP interface eno16777736 ## Сетевой интерфейс для привязки виртуального IP, такой же, как локальный IP-адрес. интерфейс, такой же, как локальный IP-адрес.  
 virtual_router_id 33 ## Идентификационный номер виртуального маршрута, должен быть одинаковым для обоих узлов, опционально используется последний сегмент IP-адреса, такой же, как последний сегмент IP-адреса.   
  
 VRID - это группа, которая будет определять MAC-адрес многоадресной рассылки mcast_src_ip 192.168.5.249 ## Приоритет локального IP-адреса  
 200 ## Приоритет узла, диапазон значений 0-254, MASTER выше, чем BACKUP advert_int 1 ## Интервал отправки многоадресных сообщений.  
  
  
  
 Оба узла должны иметь одинаковые настройки, по умолчанию 1 с ## Установка информации об аутентификации, оба узла должны иметь одинаковые настройки аутентификации { auth_type PASS auth  
  
  
 _pass 1111 ## Реальный продакшн, соответствуем этому по требованию } ## Добавляем блок track_script в блок экземпляра track_ script { chk_ngin { ## Добавляем track_script в блок экземпляра.  
  
  
 script { chk_nginx ## Выполнение контролируемых Nginx сервисов } # # Виртуальный IP-пул, оба узла должны иметь одинаковые настройки.  
  
  
  
 должны быть одинаковыми virtual_ipaddress { 192.168.5.200 ## виртуальный ip, можно задать несколько } }

3.4.2 Файл конфигурации узла BACKUP

!   
  
  
  
Конфигурационный файл для keepalived global_defs { router_id localhost.localdomain } vrrp_script&  
  
  
  
  
nbsp;chk_nginx { скрипт "/etc/keepalived/nginx_check.sh" interval 2 weight -20 } vrrp_  
  
  
  
 instance VI_1 { state BACKUP interface ens192 virtual_router_id 33 mcast_src_ip  
  
  
  
  
 192.168.5.103 приоритет 90 advert_int 1 аутентификация { auth_type PASS  
  
  
  
  
  
 auth_pass 1111 } track_script { chk_nginx } virtual_ipaddress { 192.168.  
  
 5.200 } }

Следует обратить внимание на конфигурацию:

1) router_id ethan3 ## Строка, идентифицирующая данный узел, обычно имя хоста.

Это можно определить, используя утверждение hostname в сервере. Это показано на рисунке ниже:

1641974851329444.png

2) скрипт "/etc/keepalived/nginx_check.sh" ## Путь к скрипту, который определяет состояние nginx без модификации, см. раздел 3.5 этого документа.

3) state MASTER/BACKUP ## Укажите мастер/резервное копирование.

4) интерфейс eno16777736 ## Сетевой интерфейс, к которому привязан виртуальный IP, совпадает с сетевым интерфейсом, на котором расположен локальный IP-адрес.

Это можно определить с помощью ip a. Это показано на рисунке ниже:

Примечание: Значение в файле конфигурации главного узла - это номер сетевой карты главного узла; значение в файле конфигурации резервного узла - это номер сетевой карты резервного узла.

1641974942332551.png

5) mcast_src_ip 192.168.5.249 ## Локальный IP-адрес.

6) priority 200 ## Приоритет узла, диапазон значений 0-254, MASTER выше, чем BACKUP.

7) virtual_ipaddress ## виртуальный ip, т.е. VIP, настраиваемый, может быть определено несколько.

3.5 Написание скриптов запуска Nginx с сохранением состояния

Следующий файл необходимо записать на обоих серверах, изменив путь к nginx соответствующим образом.

Напишите скрипт проверки состояния Nginx /etc/keepalived/nginx_check.sh (уже настроен в Keepalived.conf) Требования к скрипту.

#!   
  
  
/bin/bash A=`ps -C nginx --no-header |wc -l` if [ $A -eq 0 ];then /usr/nginx/sbin/  
  
  
 nginx sleep 2 if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then killall  
  
keepalived fi fi

Дайте права на файл:chmod +x /etc/keepalived/nginx_check.sh

3.6 Запуск Keepalived

Оба сервера выполняют следующий оператор:

systemctl start keepalived

3.7 Эффекты просмотра

Примечание: Если на узле есть виртуальный IP, вы можете получить доступ к соответствующему nginx и соответствующим файлам ниже через виртуальный IP.

1) Используя оператор ip addr, вы можете увидеть, что виртуальный IP 192.168.5.200 привязан к серверу MASTER. Это показано на рисунке ниже:

1641973992565967.png

и на узле BACKUP нет виртуального IP. Как показано на следующем рисунке:

1641974146900091.png

2) Используйте systemctl stop keepalived, чтобы остановить службу keepalived на главном узле с виртуальным IP на резервном узле. Как показано на следующем рисунке:

1641974581124305.png

4. Программа для пользователей Интранета

4.1 Описание этапов

Пользователи интрасети не могут установить Keepalived online. Разница между решением для пользователей интрасети и решением для пользователей экстрасети описана в разделе 3.2, но остальные шаги одинаковы.

4.2 Установка Keepalived в автономном режиме

Оба сервера должны выполнить следующие действия.

4.2.1 Этапы установки

1) Загрузите установочный пакет. Посетите URL: https: //www.keepalived.org/download.md и загрузите установочный пакет Keepalived.

2) Распакуйте и установите.

Загрузите установочный пакет в папку на сервере (пример документации: /wendy ), перейдите в папку, в которой находится установочный пакет, и выполните следующие действия:

  
cd /wendy tar -zxvf keepalived-2.0.18.tar.gz # Извлеките его
cd /wendy/keepalived-2.0.18 # Путь изменен соответствующим образом.
. /configure --prefix=/usr/local/keepalived # компиляция
make && make install # Установить

4.2.2 Установка Keepalived в качестве системной службы Linux

1) Скопируйте файл keepalived.conf в папку /etc/keepalived/.

  
mkdir /etc/keepalived cp /wendy/keepalived-2.0.18/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

2) Скопируйте сценарий службы keepalived на адрес по умолчанию:

  
cp /wendy/keepalived-2.0.18/keepalived/etc/init.d/keepalived /etc/init.d/ cp /wendy/keepalived-2.0.18/keepalived/etc /sysconfig/keepalived /etc/sysconfig/