Важно. Начиная с версии 21.04 Relay-сервер поддерживается в соответствии с договорами технической поддержки. Исходные коды Relay-сервера опубликованы по адресу https://updates.fsight.ru/s/6DN6468KGBL2DGB. Любая компания получает возможность развивать решение Relay-сервер. При пролонгации или заключении нового договора технической поддержки уточняйте дополнительно условия поддержки Relay-сервер. Рекомендуется использовать распространенные средства безопасности для публикации веб-приложений, такие как application firewall и application proxy.
Relay-сервер – это сервер, на котором развёрнут Relay-сервис. Relay-сервис позволяет устанавливать соединение между мобильным устройством и сервером мобильной платформы при повышенных требованиях к защите данных внутренней корпоративной сети. В таком случае порты из внешней сети во внутреннюю закрыты, открыты только порты из внутренней сети во внешнюю.
Relay-клиент – это узел, который устанавливает соединение между Relay-сервером и сервером мобильной платформы.
Примечание. Для корректной работы версии сервера мобильной платформы и Relay-сервера должны совпадать. При использовании Relay-сервера снижается скорость взаимодействия мобильного клиента с сервером мобильной платформы.
Схема взаимодействия мобильного клиента, Relay-сервера, Relay-клиента и сервера мобильной платформы:
Сервер мобильной платформы устанавливает http-соединение с Relay-клиентом. Relay-клиент устанавливает SSH-соединение с Relay-сервером. Relay-сервер устанавливает http-соединение с мобильным клиентом.
Мобильный клиент обменивается данными с сервером мобильной платформы с помощью Relay-сервера, который находится во внешней сети, и Relay-клиента, который находится во внутренней сети.
Relay-сервер взаимодействует с мобильным клиентом и сервером мобильной платформы:
принимает запрос на установку соединения от сервера мобильной платформы;
обменивается запросами с мобильным клиентом;
перенаправляет запросы, адресованные во внутреннюю сеть, серверу мобильной платформы в рамках установленного соединения;
запрещает установку соединения, если запрос на соединение адресован не от сервера мобильной платформы.
В процессе установки Relay-сервера и Relay-клиента используются файлы конфигурации из архива relay_sources_v23.12.<порядковый номер версии>.zip и образы relay_images_v23.12.<порядковый номер версии>.tgz, которые размещены на сервере мобильной платформы. Скопируйте файлы конфигурации на все узлы, которые будут использоваться при установке.
Примечание. Установка Relay-сервера и Relay-клиента выполняется только после установки сервера мобильной платформы.
Для установки Relay-сервера и Relay-клиента:
Запустите сервер мобильной платформы:
% docker-compose -f docker-compose.standalone.yml up
Перейдите на узел, на котором будет запущен Relay-сервер, и выполните следующие действия:
Скопируйте сгенерированный SSH-ключ id_rsa.pub из узла, на котором запущен Relay-клиент, в данный узел.
Объявите переменную SSH_PUB_KEY для публичного ключа SSH-соединения:
% export SSH_PUB_KEY=$(cat ~/<каталог для SSH-ключей>/id_rsa.pub)
При необходимости измените значение переменной в файле .env:
RELAY_SERVER_PORT. Укажите порт для запуска Relay-сервера.
Примечание. Значение переменной должно совпадать со значением переменной RELAY_SERVER_PORT в файле .env, который расположен на узле Relay-клиента.
Запустите Relay-сервер:
% docker-compose -f docker-compose.relay.yml up -d relay_server
Перейдите на узел, на котором будет запущен Relay-клиент, и выполните следующие действия:
Примечание. Запуск Relay-клиента может выполняться на одном узле вместе с сервером мобильной платформы.
Сгенерируйте SSH-ключи для установки зашифрованного соединения между Relay-клиентом и Relay-сервером:
% ssh-keygen -t rsa -N "" -f ~/<каталог для SSH-ключей>/id_rsa
Объявите переменные SSH_PUB_KEY и SSH_KEY для ключей SSH-соединения:
% export SSH_PUB_KEY=$(cat
~/<каталог для SSH-ключей>/id_rsa.pub)
% export SSH_KEY=$(cat ~/<каталог для SSH-ключей>/id_rsa)
Измените значения переменных в файле .env:
INGRESS_HOST. Укажите хост сервера мобильной платформы;
RELAY_SERVER_HOST. Укажите хост Relay-сервера.
При необходимости измените значения переменных:
INGRESS_PORT. Укажите http-порт сервера мобильной платформы;
INGRESS_HTTPS_PORT. Укажите https-порт сервера мобильной платформы;
RELAY_SERVER_PORT. Укажите порт для запуска Relay-сервера.
Запустите Relay-клиент:
% docker-compose -f docker-compose.relay.yml up -d relay_client
При необходимости:
отмените объявление переменных SSH_KEY и SSH_KEY_PUB на Relay-клиенте:
% unset SSH_KEY
% unset SSH_KEY_PUB
отмените объявление переменной SSH_KEY_PUB на Relay-сервере:
% unset SSH_KEY_PUB
удалите сгенерированные/скопированные SSH-ключи id_rsa, id_rsa.pub с узлов, на которых запущены Relay-клиент и Relay-сервер.
После выполнения действий Relay-сервер будет установлен. Обмен запросов между мобильным клиентом и сервером мобильной платформы будет осуществляться через Relay-клиент и Relay-сервер. Для отправки запросов к мобильной платформе используйте доменное имя Relay-сервера и порт 8079, например: domain.com:8079. Если Relay-сервер не содержит доменного имени, то создайте псевдоним с доменным именем в файле /etc/hosts и обращайтесь к нему.
Для отключения Relay-сервера и Relay-клиента выполните команду:
% docker-compose -f docker-compose.relay.yml down
После выполнения действий Relay-сервер и Relay-клиент будут отключены.
См. также:
Развертывание и подготовка сервера на Ubuntu | Развертывание и подготовка сервера на Astra Linux | Развертывание и подготовка сервера на Rocky Linux | Обновление продукта «Форсайт. Мобильная платформа» | Управление мобильной платформой | Активация и управление лицензией