База знаний FAM/MFA+ : Установка FAM Server в отказоустойчивом (кластерном) исполнении

Требования к окружению

Перед выполнением развёртывания по текущей инструкции необходимо выполнение следующих условий:

  1. В ОС должны быть установлены следующие программы:
    - openssl (программа управления сертификатами);
    - tar (программа архивирования);
    - psql (CLI-клиент из состава PostgreSQL);
    - nginx (веб-сервер/прокси-сервер);
    - sudo (программа выполнения команд от имени суперпользователя).

Балансировка веб-интерфейсов

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

При равномерном распределении трафика между серверами каждый сервер получает только ту часть запросов, которую способен обработать. Это позволяет распределить нагрузку и предотвратить перегрузку одного конкретного сервера, что может привести к снижению производительности или сбою в работе приложения.

Данный метод подходит для распределения HTTP-трафика между несколькими серверами.

Для настройки балансировки веб-интерфейсов необходимо:

  1. На серверах со службой FAM в конфигурационном файле config.json в качестве хоста указать IP-адрес сервера:

    app-server1

    "server": {
        "host": "%IP-адрес сервера 1%",
        "port": 4008
      }

    app-server2

    "server": {
        "host": "%IP-адрес сервера 2%",
        "port": 4008
      }
  2. Создать конфигурационный файл /etc/nginx/sites-available/lb.conf, заполнить параметрами, указанными ниже, заменив %заполнители% на значения IP-адресов :

    upstream backend {
            server %IP-адрес сервера приложений 1%:4008;
            server %IP-адрес сервера приложений 2%:4008;
        }
    server {
           listen 80;
    	   server_name idp.avanpost.local
           location / {
              proxy_pass http://backend;
              proxy_http_version 1.1;
         
              proxy_set_header   Upgrade $http_upgrade;
              proxy_set_header   Connection keep-alive;
              proxy_set_header   Host $http_host;
              proxy_cache_bypass $http_upgrade;
              proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header   X-Forwarded-Proto $scheme;
           }
        }
  3. В конфигурационном файле /etc/nginx/ nginx.conf добавить запись в секцию http:

    include /etc/nginx/sites-available/*;
  4. Перезапустить службу nginx.

Балансировка gRPC

Балансировка нагрузки gRPC — это процесс распределения входящих запросов между несколькими экземплярами gRPC-серверов для обеспечения оптимальной производительности и доступности при разработке распределенных приложений с использованием gRPC-протокола.

Данный метод подходит для распределения gRPC-трафика между несколькими серверами.

Для настройки балансировки gRPC необходимо:

  1. Отредактировать файл /etc/nginx/sites-available/lb.conf:

    upstream grpc {
            server %IP-адрес сервера приложений 1%:9007;
            server %IP-адрес сервера приложений 2%:9007;
        }
    server {
           listen 9007;
    	   server_name grpc.avanpost.local
           location / {
              proxy_pass http://grpc;
              proxy_http_version 1.1;
         
              proxy_set_header   Upgrade $http_upgrade;
              proxy_set_header   Connection keep-alive;
              proxy_set_header   Host $http_host;
              proxy_cache_bypass $http_upgrade;
              proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header   X-Forwarded-Proto $scheme;
           }
        }
  2. Перезапустить службу nginx.
  3. В результате изменений интерфейс gRPC будет доступен по адресу http://grpc.avanpost.local:9007 .


Балансировка RADIUS

Необходима информация о балансировке RADIUS протокола