Оформление
Контейнерное решение Websocket
1. Обзор
1.1 Версия
| Версия сервера BI |
|---|
| 5.1.20 |
1.2 Сценарии применения
Чтобы снизить сложность настройки Websocket, в BI-проекты 5.1.20 и более поздних версий добавлена новая контейнерная схема Websocket.
Для подключения решение использует WebSocket, поставляемый с веб-контейнером, а порт мультиплексирует порт http. Пользователям не нужно открывать порт извне и настраивать его вручную.
Если проект поддерживает контейнерную схему Websocket, доступ к фоновому режиму будет предпочтительно использовать новую схему, а в случае неудачи повторно использовать старую схему socket.io.
2. Этапы реализации программы
Для выполнения контейнерного Websocket-решения необходимо соблюсти некоторые из следующих условий и конфигураций.
2.1 Экологический контроль тары
Контейнерное Websocket-решение, поддерживаются только следующие контейнеры (контейнерное окружение обычно подготавливается пользователем, а не поставляется с FineBI)
| контейнеры | выпускает | инструкции |
|---|---|---|
| Tomcat | Поддержка Tomcat версий 7.0.47~9.0 | - |
| WebLogic | Weblogic 12c и выше | Необходимо изменить пространство имен web.xml, остальноеостается неизменным<! --- Измените веб-приложение следующим образом --> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns=" http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http:// xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> |
| WebSphere | WebSphere 9 и выше | - |
| JBoss | eap6.4+ дико9+ | eap6.4 требует изменения конфигурации:В разделе web-inf добавьте jboss-web.xml<?xml version="1.0" encoding="UTF-8"? > <!--Включить WebSockets --> <jboss-web> <enable-websockets>true</enable-websockets> < /jboss-web>Измените ${hboss_home}/standalone/configuration/standalone.xmlИзмените protocol="HTTP/1.1" на protocol="org.apache.coyote.http11.Http11NioProtocol".![]() |
Если контейнерное окружение текущего проекта соответствует условиям, настройки WebSocket не отображаются на экране Manage system > System administration > General.

2.2 Конфигурация балансировки нагрузки
2.2.1 Nginx
1) Измените конфигурацию http
Добавьте следующие утверждения под каждым блоком расположения:
proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection.
2) Необходимо проверить, настроен ли Nginx для работы с WebSocket.
Откройте файл nginx.conf и посмотрите, появится ли в нем следующее сообщение:
server { # здесь указывается порт websocket, если это кластерное развертывание, для проекта FineReport - 38889, для проекта FineBI - 48889
listen 38889; &
nbsp; имя_сервера 192.168.6.181; &
nbsp; location / {
proxy_http_version 1.1; proxy_pass http://
WBS.com; proxy_connect_timeout 75; &
nbsp; proxy_read_timeout 400; &
nbsp; proxy_send_timeout 400; &
nbsp; #Цель обновления для $http_upgrade Значение на самом деле является websocket proxy_set_header Upgrade $http_
upgrade; #Обновление настроек соединения  
;proxy_set_header Connection "upgrade";  
; } }Если вы не видите вышеуказанного, значит, вы не настроили WebSocket в Nginx и можете использовать контейнерное решение WebSocket напрямую.
Если появляется вышеуказанное содержимое, значит, вы настроили WebSocket в Nginx и вам нужно удалить вышеуказанное содержимое. Как показано на следующем рисунке:

2.2.2 traefik
Никакой дополнительной настройки не требуется, исходная конфигурация ws сохраняется/удаляется, не влияя на то, что решение WebSocket в контейнере вступит в силу.
2.2.3 f5
Никакой дополнительной настройки не требуется, исходная конфигурация ws сохраняется/удаляется, не влияя на то, что решение WebSocket в контейнере вступит в силу.
2.3 Браузерная среда
- Контейнерное решение WebSocket поддерживает Chrome, FireFox, Edge, IE10 и выше.
- Контейнерное решение WebSocket не поддерживает браузеры IE9 и ниже.
