Если работа веб-приложения осуществляется по протоколу HTTPS, то для корректной работы веб-форм, использующих протокол WebSocket, потребуется дополнительная настройка, чтобы использовалось шифрованное соединение WSS.
В файл настроек /etc/apache2-fp10.x-web/sites-available/webserver.conf добавьте строки:
<VirtualHost *:9091>
ProxyPass /service ws://localhost:${WEBFORMS_PORT}/service
ProxyPassReverse /service ws://localhost:${WEBFORMS_PORT}/service
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/cert.crt
SSLCertificateKeyFile /etc/apache2/ssl/cert.key
SSLProxyEngine On
RewriteEngine On
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule ^(.*) ws://localhost:${WEBFORMS_PORT}/$1 [P,L]
</VirtualHost>
где:
cert.crt, cert.key. Файлы предварительно сгенерированного и установленного сертификата безопасности. Сертификат безопасности может быть подготовлен с помощью специальных криптографических программных средств, например, OpenSSL. Пример установки приведён в разделе «Настройка двухфакторной аутентификации»;
9091. Порт по умолчанию, который используется для работы веб-форм.
В файле с переменными окружения /etc/apache2-fp10.x-web/envvars в конец добавьте строку:
export WEBFORMS_PORT=9093
где 9093 - это порт, который будет определён на BI-сервере в пункте 5.
В файле /etc/apache2-fp10.x-web/ports.conf добавьте для прослушивания порт 9091, на который будут направляться запросы с клиента:
<IfModule ssl_module>
Listen 443
Listen 9091
</IfModule>
Установите модули proxy_http, proxy_wstunnel:
sudo a2enmod-fp10.x-web proxy_http proxy_wstunnel
В файле настроек BI-сервера settings.xml определите порт веб-форм для работы по протоколу WebSocket:
<Configuration>
<Root>
<Key Name="PP">
<BIS>
<Key Name="System">
<WebForms Port="9093"/>
</Key>
</BIS>
</Key>
</Root>
</Configuration>
В качестве альтернативного варианта настройки можно задать следующим образом:
В файл настроек /etc/apache2-fp10.x-web/sites-available/webserver.conf добавьте строки:
<VirtualHost *:9093>
ProxyPass /service ws://localhost:${WEBFORMS_PORT}/service
ProxyPassReverse /service ws://localhost:${WEBFORMS_PORT}/service
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/cert.crt
SSLCertificateKeyFile /etc/apache2/ssl/cert.key
SSLProxyEngine On
RewriteEngine On
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule ^(.*) ws://localhost:${WEBFORMS_PORT}/$1 [P,L]
</VirtualHost>
В файле с переменными окружения /etc/apache2-fp10.x-web/envvars в конец добавьте строку:
export WEBFORMS_PORT=9091
В файле /etc/apache2-fp10.x-web/ports.conf добавьте для прослушивания порт 9093, на который будут направляться запросы с клиента:
<IfModule ssl_module>
Listen 443
Listen 9093
</IfModule>
Установите модули proxy_http, proxy_wstunnel:
sudo a2enmod-fp10.x-web proxy_http proxy_wstunnel
В файле настроек веб-приложения config.json укажите порт, на котором будут работать веб-формы:
{
...
"webSocketPort": "9093",
...
}
См. также: