Настройте nginx в high available конфигурации с помощью модуля nginx - `ngx_http_upstream_module`. Сконфигурируйте nginx на трёх виртуальных машинах. Для тестировани используйте машину отличную от этих трёх.
Пример конфигурации 1:
```
________
| |
| клиент | (ноутбук)
|________|
|
роутер public IP 193.32.63.185:[22,80,443] -> private IP 10.160.179.25:[22,80,443]
|
| ens18 в vlan499 с доступом в интернет с IP 10.160.179.25/24
На машинах `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` cогласно схеме приведённой выше. Пример конфигурации для узла `nginx 3`:
Cлужебная информация (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 для сетевых интерфесов для каждого случая.
# 3.
Дополнительное задание.
Модифицируйте настройки на машинах первого и второго задания для обеспечения балансировки нагрузки.