С помощью Nginx можно настроить балансировку сетевой нагрузки между контроллерами в домене Avanpost DS. Клиенты будут обращаться по единому имени, указанному в A-записи в DNS зоне домена, а нагрузка будет распределяться по всем указанным в конфигурационном файле Nginx контроллерам домена.
Для настройки необходимо выполнить шаги:
Шаг 1. Добавить в DNS зону домена A-запись.
Для этого требуется:
- В разделе "DNS" веб-интерфейса Avanpost DS в строке нужной зоны нажать → "Добавить запись A".
- Заполнить необходимые поля в открывшейся форме:
Поле Значение Имя хоста Имя балансировщика без домена (В примере используется значение "ds") IP
IPv4 адрес первого контроллера домена - Нажать .
Шаг 2. Настроить конфигурационный файл Nginx на первом контрллере домена.
Ниже приведен пример конфигурационного файла Nginx для настройки NLB с использованием https. В секции "upstream site" перечислены все контроллеры в домене, между которыми будет распределяться нагрузка.
В примере используется:
- FQDN первого контроллера домена "ds01.avanpost.local". Его необходимо заменить на ваш FQDN.
- FQDN контроллера домена "ds02.avanpost.local". Его необходимо заменить на ваш FQDN.
- FQDN контроллера домена "ds03.avanpost.local". Его необходимо заменить на ваш FQDN.
- Имя балансировщика "ds.avanpost.local". Его необходимо заменить на имя, указанное в A-записи на шаге 1.
Для публикации с использованием протокола https требуются сертификаты, выданные вашим удостоверяющим центром.
/etc/nginx/conf.d/nlb.conf
upstream site {
ip_hash;
server ds01.avanpost.local:8080;
server ds02.avanpost.local:8080;
server ds03.avanpost.local:8080;
}
server {
listen 443 ssl;
server_name ds.avanpost.local;
ssl_certificate /opt/ds01.avanpost.local.crt;
ssl_certificate_key /opt/ds01.avanpost.local.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://site;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
