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

Описание

В данной инструкции представлена настройка распределенной архитектуры мобильных сервисов с целью балансировки нагрузки внутри каждого из трех компонентов:

  1. Балансировка мобильных уведомлений (mobpush).
  2. Балансировка backend мобильного API (mobapibackend).
  3. Балансировка frontend мобильного API (mobapifrontend).

Каждый блок " server" задает проксирование запросов к соответствующему upstream-блоку с настройками протокола HTTP/1.1 и установленными заголовками для сохранения метаданных и обеспечения целостности передаваемых данных.

Настройка демонстрирует схему балансировки нагрузки между различными серверами на портах 4222 (mobpush), 8888 (mobapibackend) и 9999 (mobapifrontend) для обеспечения масштабируемости и отказоустойчивости в архитектуре мобильных сервисов.

Настройка

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

    upstream mobpush {
            server %IP-адрес сервера mobile services 1%:4222;
            server %IP-адрес сервера mobile services 2%:4222;
        }
    
    upstream mobapibackend {
            server %IP-адрес сервера mobile services 1%:8888;
            server %IP-адрес сервера mobile services 2%:8888;
        }
    
    upstream mobapifrontend {
            server %IP-адрес сервера mobile services 1%:9999;
            server %IP-адрес сервера mobile services 2%:9999;
        }
    
    
    server {
           listen 4222;
    	   server_name mobpush.avanpost.local
           location / {
              proxy_pass http://mobpush;
              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;
           }
        }
    
    server {
           listen 8888;
    	   server_name mobapibackend.avanpost.local
           location / {
              proxy_pass http://mobapifrontend;
              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;
           }
        }
    
    server {
           listen 9999;
    	   server_name mobapifrontend.avanpost.local
           location / {
              proxy_pass http://mobapibackend;
              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. В результате изменений:
    – сервис push-уведомлений будет доступен по адресу http://mobpush.avanpost.local ;
    – сервис для внутреннего взаимодействия между FAM и proxy сервисом http://mobapibackend.avanpost.local :8888;
    – адрес для обращения к прокси службе http://mobapibfrontend.avanpost.local :9999.