Настройте nginx в high available конфигурации с помощью модуля nginx - `ngx_http_upstream_module`. Сконфигурируйте nginx на трёх виртуальных машинах. Для тестировании используйте машину отличную от этих трёх.
На машинах `nginx 1` и `nginx 2` установите nginx, отредактируйте приветственную страницу по-умолчанию `/var/www/html/index.nginx-debian.html`, добавив номер сервера и проверьте, что сайт доступен по локальному адресу стандартному порту 80.
Отредактируйте конфигурацию по-умолчанию `/etc/nginx/sites-enabled/default`. Используйте блок `upstream` на машине `proxy` для настройки прокси-сервера с функцией балансировки нагрузки и резервирования. Укажите в блоке ip адреса двух серверов `nginx 1` и `nginx 2` и укажите для одного из них параметр `backup` (этот узел будет резервным). Пример конфигурации 2 для stud15:
```
upstream backend {
server 10.160.179.180;
server 10.160.179.181 backup;
}
server {
location / {
proxy_pass http://backend;
}
}
```
Проверьте работоспособность сайта по адресу прокси сервера для случаев когда `nginx 1` и `nginx 2` виртуальные машины включены, отключена основная, отключена резервная.
- реализация сетевого протокола VRRP (Virtual Router Redundancy Protocol), предназначенный для увеличения доступности маршрутизаторов, выполняющих роль шлюза по умолчанию,
VRRP гарантирует, что основной узел keepalived доступен в любое время. Резервный узел прослушивает оповещательные пакеты VRRP от первичного узла. Если он не получает оповещательный пакет в течение периода, более в три раза превышаемого заданного интервала, резервный узел берёт на себя функции первичного и назначает настроенный VIP себе.
Отредактируйте приветственную страницу по-умолчанию `/var/www/html/index.nginx-debian.html`, добавив номер сервера и проверьте, что сайт доступен по локальному адресу стандартному порту 80.
Настройте keepalived на обоих узлах, используя следующую конфигурацию `/etc/keepalived/keepalived.conf` согласно схеме приведённой выше. Пример конфигурации для узла `nginx 3`:
Служебная информация (vrrp-объявления от keepalived-лидера о том, что узел работоспособен) будет передаваться через сетевой интерфейс ens18 vlanX. Работоспособность узла отслеживается скриптом `chech_nginx`, указанным в блоке `track_script`. Скрипт настраивается в блоке `vrrp_script`, где указывается путь к исполняемому файлу и другие параметры. Keepalived пакет предоставляет документацию man для конфигурационного файла - `man keepalived`.
Поменяйте параметр `state` на `BACKUP` и уменьшите параметр `priority` для резервного узла, поменяйте адрес `mcast_src_ip`, используемый для передачи служебной информации.
На обеих машинах создайте скрипт для проверки работы nginx `/etc/keepalived/check_nginx.sh` и отключения `keepalived` процесса, в случае неработоспособности nginx сервиса (не найден pid процесса nginx).
Проверьте работоспособность сайта по адресу `http://IP` (IP - virtual IP или соответствующему ему белому IP по адресу) для случаев когда `nginx 3` и `nginx 4` виртуальные машины включены, отключена основная, отключена резервная. Выведите информацию о назначенных IP для сетевых интерфейсов для каждого случая.
-`man keepalived.conf`, https://www.keepalived.org/manpage.html (на данный момент лучшая документация, идеально отражающая и документирующая все доступные функции)
- https://keepalived.readthedocs.io/en/latest/ (эта документация является устаревшей, поскольку является частичной и не отражает полный набор доступных функций)