Особенности настройки кластера Web-клиент
С целью повышения отказоустойчивости и распределения нагрузки, администратор может объединить несколько экземпляров модуля Web-клиент в кластер.
Обязательные условия для работы кластера
-
Каждый экземпляр Web-клиента должен иметь уникальный адрес подключения.
-
Балансировщик нагрузки должен передавать заголовок X-Forwarded-Proto.
Подготовка узлов кластера
-
Установите и настройте модуль Web-клиент на первом компьютере кластера Linux.
-
Установите и настройте Web-клиент на последующих узлах кластера Linux.
-
Настройте балансировщик нагрузки.
Сгенерируйте отпечаток
-
Если Web-клиент использует HTTPS, создайте сертификат с помощью OpenSSL. Пример использования утилиты приведён в разделе администрирования модуля Консоль управления Docsvision: "Создание доверенного сертификата для подключения к БД".
-
Установите и настройте Web-клиент на втором компьютере кластера (далее — УЗЕЛ 2).
Экземпляр Web-клиента, установленный на втором и последующих узлах кластера, должен быть настроен на работу с теми же сервером и базой данных Docsvision, что и УЗЕЛ 1. -
В конфигурационном файле
/usr/lib/docsvision/webclient/appsettings.jsonна УЗЛЕ 1 укажите путь к полученному сертификату в элементе"Https":("Http":, если используется незащищённое соединение). Фрагмент конфигурационного файла приведён ниже:{ "Https": { "Url": "https://*:5005", "Certificate": { "Path": "/home/user/certificate.pfx", (1) "Password": "password" (2) } } }1 Путь к сертификату 2 Пароль от сертификата -
Сгенерируйте сертификат на втором узле.
-
Откройте конфигурационный файл
/usr/lib/docsvision/webclient/appsettings.jsonна УЗЛЕ 2 и укажите путь к полученному сертификату. -
Повторите шаги инструкции для третьего и последующих узлов кластера Web-клиента.
Настройка nginx
При использовании прокси-сервиса nginx, установленного на отдельной машине от Web-клиента необходимо в корень конфигурационного файла Web-клиент добавить настройку ForwardedHeaders/KnownProxies, разрешающую принимать от прокси-сервиса заголовки. Если Web-клиент и прокси установлены на одном ПК, ничего добавлять не нужно.
{
"ForwardedHeaders":
{
"KnownProxies": {
"proxy1": "{123.456.789}" (1)
}
}
}
| 1 | Укажите IP адрес сервера nginx. Вместо proxy1 можно использовать любое уникальное название. В значении параметра указывается только IP адрес. При необходимости можно указывать несколько прокси-сервисов. |
На стороне прокси-сервиса должна быть настроена передача заголовков: X-Forwarded-Proto, X-Forwarded-Host, X-Forwarded-Port (если порт не соответствует схеме), X-Forwarded-For.
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Port $server_port;
Если за прокси-сервисом скрыто несколько экземпляров Web-клиента, нужно установить настройку Docsvision/WebClient/SettingGroups/WebClient/ServerR7JwtAccessToWebClientEnable в значение true. Если настройка отсутствует, добавьте её самостоятельно.
{
"Docsvision": {
"WebClient": {
"SettingGroups": {
"WebClient": {
"ServerR7JwtAccessToWebClientEnable": true
}
}
}
}
}