1. 概述
1.1 版本
BI伺服器版本 |
---|
5.1.20 |
1.2 應用場景
為了降低Websocket配置難度,5.1.20 及之後版本的BI工程,新增了一個容器Websocket方案。
該方案使用Web容器自帶的WebSocket進行連結,埠複用http埠。使用者無需對外開啟埠,無需任何手動配置。
當工程支援容器Websocket方案時,前臺存取會優先使用新方案,失敗後使用老socket.io方案進行重試。
2. 方案執行步驟
容器Websocket方案的執行,需要滿足以下一些條件和配置。
2.1 容器環境檢驗
容器Websocket方案,僅支援以下容器(容器環境一般是由使用者自行準備,非FineBI自帶)
容器 | 版本 | 說明 |
---|---|---|
Tomcat | 支援Tomcat7.0.47~9.0 版本 | - |
WebLogic | Weblogic12c及以上版本 | 需要修改web.xml名稱空間,其他不變 <!--修改web-app如下--> |
WebSphere | WebSphere9及以上版本 | - |
JBoss | eap6.4+ wildly9+ | eap6.4需要修改配置: web-inf下新增jboss-web.xml <?xml version="1.0" encoding="UTF-8"?> 修改${hboss_home}/standalone/configuration/standalone.xml 將protocol="HTTP/1.1"修改為protocol="org.apache.coyote.http11.Http11NioProtocol" ![]() |
TongWeb | TongWeb 6、TongWeb 7 版本 | - |
若當前工程所在容器環境滿足條件,則「管理系統>系統管理>標準」頁面不顯示「WebSocket設定」。
2.2 負載均衡配置
2.2.1 Nginx
1)修改 http 配置
在每個 location 塊下新增以下語句:
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;
server_name 192.168.6.181;
location / {
proxy_http_version 1.1;
proxy_pass http://WBS.com;
proxy_connect_timeout 75;
proxy_read_timeout 400;
proxy_send_timeout 400;
#升級目標為$http_upgrade 值實際為websocket
proxy_set_header Upgrade $http_upgrade;
#Connection設定升級
proxy_set_header Connection "upgrade";
}
}
若未出現以上內容,即未在 Nginx 中配置過 WebSocket ,可直接使用容器化 WebSocket 方案。
若出現以上內容,即曾在 Nginx 中配置過 WebSocket,需要刪除以上內容。如下圖所示:
2.2.2 traefik
無需額外配置,原ws配置保留/刪除不影響容器化WebSocket方案生效。
2.2.3 f5
無需額外配置,原ws配置保留/刪除不影響容器化WebSocket方案生效。
2.3 瀏覽器環境
容器化WebSocket方案支援 Chrome、FireFox、Edge、IE10 及以上版本瀏覽器。
容器化WebSocket方案不支援 IE9 及以下版本瀏覽器