В этой статье:
Настройка взаимодействия через серверную часть веб-приложения
Настройка взаимодействия в обход серверной части веб-приложения
При разработке системы на базе веб-приложения продукта «Форсайт. Аналитическая платформа» в контуре разработки или тестирования доступно два способа взаимодействия браузера с BI-сервером:
через серверную часть веб-приложения. Серверная часть веб-приложения обрабатывает полученные запросы браузера и перенаправляет их BI-серверу с помощью обработчика запросов PPServices.axd, выполняющего функции прокси-сервера. Проксирование запросов необходимо, если BI-сервер содержится в другом домене относительно браузера. Данный способ взаимодействия используется по умолчанию;
в обход серверной части веб-приложения. Серверная часть веб-приложения не взаимодействует с BI-сервером, браузер обращается к серверной части веб-приложения только для загрузки необходимых файлов веб-приложения и считывания настроек из файлов конфигурации config.json, PP.xml. Запросы браузера отправляются напрямую к BI-серверу через точку доступа PP.SOM.Som. Работа BI-сервера организована на базе веб-сервиса PP.SOM, предоставляющего доступ к функциональности продукта.
При переносе разработанной системы в контур промышленной эксплуатации используется только один способ взаимодействия браузера с кластером BI-серверов - в обход серверной части веб-приложения.
Схема взаимодействия браузера с BI-сервером через серверную часть веб-приложения:

Схема взаимодействия браузера с BI-сервером в обход серверной части веб-приложения:

Условные обозначения:
. Взаимодействие элементов конфигурации
на уровне продукта;
. Допустимые протоколы взаимодействия.
Рассмотрим настройки взаимодействия браузера с BI-сервером через серверную часть веб-приложения и напрямую при работе веб-приложения по протоколу HTTPS.
Настройка взаимодействия браузера с BI-сервером через серверную часть веб-приложения отличается в зависимости от операционной системы.
Для настройки взаимодействия браузера с BI-сервером через серверную часть веб-приложения в ОС Linux:
Задайте обработчик запросов PPServices.axd в поле serviceUrl в файле config.json:
"serviceUrl": "https://<веб-сервер>:<номер порта>/fp10.x/app/PPService.axd"
Где:
<веб-сервер>. IP-адрес или DNS-имя сервера, на котором установлена серверная часть веб-приложения;
<номер порта>. Номер порта, по которому доступна серверная часть веб-приложения. По умолчанию используется порт 443 для HTTPS, 8110 для HTTP.
Проверьте настройки экземпляра веб-сервера Apache2 с серверной частью веб-приложения. По умолчанию запросы браузера перенаправляются через серверную часть веб-приложения с помощью обработчика запросов PPService.axd к BI-серверу в соответствии с параметрами, содержащимися в файлах:
/etc/opt/foresight/fp10.x-webserver/envvars. В переменной PP_SOM содержится адрес веб-сервиса PP.SOM по умолчанию:
PP_SOM=https://localhost:8810/FPBI_App_v10.x/axis2/services/PP.SOM.Som
/etc/apache2-fp10.x-web/sites-available/webserver.conf в Debian-подобных дистрибутивах, /etc/httpd-fp10.x-web/conf.d/00-virtualhost.conf в RedHat-подобных дистрибутивах, /etc/httpd2-fp10.x-web/conf/sites-available/default.conf в ALT Linux. В параметре ProxyPass содержится обработчик запросов PPService.axd и переменная PP_SOM по умолчанию:
ProxyPass /fp10.x/app/PPService.axd ${PP_SOM} retry=1 acquire=3000 timeout=6000 Keepalive=On
После выполнения действий запросы браузера будут перенаправляться через серверную часть веб-приложения к BI-серверу.
Для настройки взаимодействия браузера с BI-сервером через серверную часть веб-приложения в ОС Windows:
Задайте обработчик запросов PPServices.axd в поле serviceUrl в файле config.json:
"serviceUrl": "https://<веб-сервер>:<номер порта>/FP_App_v10.x/app/PPService.axd"
Где:
<веб-сервер>. IP-адрес или DNS-имя сервера, на котором установлена серверная часть веб-приложения;
<номер порта>. Номер порта, по которому доступна серверная часть веб-приложения. По умолчанию используется порт 443 для HTTPS, 80 для HTTP.
Задайте адрес веб-сервиса PP.SOM в качестве значения атрибута url в разделе <proxy> в файле PP.xml для работы с менеджером безопасности:
<proxy url="https://<BI-сервер>:<номер порта>/FPBI_App_v10.x/axis2/services/PP.SOM.Som" />
Где:
<BI-сервер>. IP-адрес или DNS-имя сервера, на котором установлен BI-сервер;
<номер порта>. Номер порта, по которому доступен BI-сервер. По умолчанию используется порт 80.
После выполнения действий запросы браузера будут перенаправляться через серверную часть веб-приложения к BI-серверу.
Настройка взаимодействия браузера с BI-сервером в обход серверной части веб-приложения отличается в зависимости от операционной системы.
Для настройки взаимодействия браузера с BI-сервером в обход серверной части веб-приложения в ОС Linux:
Задайте адрес веб-сервиса PP.SOM в поле serviceUrl в файле config.json:
"serviceUrl": "https://<BI-сервер>:<номер порта>/FPBI_App_v10.x/axis2/services/PP.SOM.Som"
Где:
<BI-сервер>. IP-адрес или DNS-имя сервера, на котором установлен BI-сервер;
<номер порта>. Номер порта, по которому доступен BI-сервер. По умолчанию используется порт 443 для HTTPS, 8810 для HTTP.
Задайте аналогичный адрес веб-сервиса PP.SOM в качестве значения атрибута url в разделе <service> в файле PP.xml для работы с менеджером безопасности:
<service url="https://<BI-сервер>:<номер порта>/FPBI_App_v10.x/axis2/services/PP.SOM.Som" />
После выполнения действий запросы браузера будут идти напрямую к BI-серверу, в обход серверной части веб-приложения.
Для настройки взаимодействия браузера с BI-сервером в обход серверной части веб-приложения в ОС Windows:
Задайте адрес веб-сервиса PP.SOM в поле serviceUrl в файле config.json:
"serviceUrl": "https://<BI-сервер>:<номер порта>/FPBI_App_v10.x/axis2/services/PP.SOM.Som"
Где:
<BI-сервер>. IP-адрес или DNS-имя сервера, на котором установлен BI-сервер;
<номер порта>. Номер порта, по которому доступен BI-сервер. По умолчанию используется порт 443 для HTTPS, 80 для HTTP.
Задайте аналогичный адрес веб-сервиса PP.SOM в качестве значения атрибута url в разделе <service> в файле PP.xml для работы с менеджером безопасности:
<service url="https://<BI-сервер>:<номер порта>/FPBI_App_v10.x/axis2/services/PP.SOM.Som" />
После выполнения действий запросы браузера будут идти напрямую к BI-серверу, в обход серверной части веб-приложения.
В ОС Linux при взаимодействии браузера с BI-сервером в обход серверной части веб-приложения могут возникнуть ошибки, связанные с ограничениями политики CORS.
Для настройки механизма CORS и повышения безопасности системы:
Откройте файл:
/etc/apache2-fp10.x/apache2.conf в Debian-подобных дистрибутивах;
/etc/httpd-fp10.x/conf/httpd-fp10.x.conf в RedHat-подобных дистрибутивах;
/etc/httpd2-fp10.x/conf/httpd2-fp10.x.conf в ALT Linux.
Задайте заголовки Origin, Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Headers:
<IfModule mod_headers.c>
SetEnvIf Origin ^(<разрешённый домен>)$ CORS_ALLOW_ORIGIN=$1
Header always set Access-Control-Allow-Origin %{CORS_ALLOW_ORIGIN}e
env=CORS_ALLOW_ORIGIN
Header merge Vary "Origin"
Header always set Access-Control-Allow-Methods
"POST, OPTIONS, <методы HTTP-запросов>"
Header always set Access-Control-Allow-Headers
"get-ppbi-time, content-type, soapaction, accept-language, cache-control,
Authorization, <заголовки HTTP-запросов>"
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]
В подстановках:
<разрешённый домен>. Укажите домен, для которого будет разрешено получение запросов, в виде регулярного выражения. Например, регулярное выражение для домена example.com:
https?://(?:.+\.)?example\.com(?::\d{1,5})?
Данная настройка включает использование механизма CORS на родительском и дочерних ему доменах, а также динамически устанавливается на текущий протокол, домен, порт без использования правил перезаписи;
<методы HTTP-запросов>. Укажите дополнительные методы для доступа к ресурсу. Методы POST, OPTIONS являются обязательными;
<заголовки HTTP-запросов>. Укажите заголовки, которые используются ресурсом. Заголовки get-ppbi-time,content-type, soapaction, accept-language, cache-control, Authorization являются обязательными.
Примечание. Убедитесь, что указанные параметры механизма CORS соответствуют требованиям используемого ресурса.
Подключите модули headers, rewrite в Astra Linux:
sudo a2enmod-fp10.x headers rewrite
После выполнения действий будет настроен механизм CORS.
См. также: