不額外給WebSocket對外開放埠

1. 概述

1.1 版本

FineBI 伺服器版本
6.0

1.2 應用場景

部分公司對於工程環境保全等級要求較高,對於開發埠限制較多。

若只開放一個埠,WebSocket 往往無法正常連結。

1.3 功能簡介

在不能申請開放 WebSocket 埠的情況下,可以將socket埠也轉發到開放的埠下。

本文將簡單介紹在 Linux+Nginx+Tomcat 環境下,如何僅開放一個埠8888,仍可正常使用 WebSocket。

注:FineBI 內建了一個容器Websocket方案。推薦優先查看是否可使用該方案:容器Websocket方案

無需任何使用者操作,無需任何手動配置,無需額外開啟埠,系統可自動使用Web容器自帶的WebSocket進行連結,埠複用http埠。

2. 範例

2.1 設定websocket轉發埠

管理者登入數據決策系統,點選「管理系統>系統管理>標準」,設定websocket 請求埠。如下圖所示:

此處設定的埠即為工程唯一對外埠,可自行設定,本文以8888為例。

注1:叢集環境會預設勾選「已配置代理伺服器」,非叢集環境需要手動勾選已配置代理伺服器(表示已經配置nginx)。

注2:FineBI內建了一個容器 websocket 方案,幫助使用者實現快速配置 websocket 埠。

       若「管理系統>系統管理>標準」頁面不顯示 HTTPS 設定項,說明此方案生效,Websocket 連結已正確配置,無需其他任何手動配置。

2.2 修改nginx.conf

Nginx 監聽 server 塊下加上對請求 url 包含 /socket.io/ 的分支判斷處理,將socket埠轉發到開放的8888埠下,詳細的配置檔案參考:

...
server {
        listen 8888;#監聽埠,這個要和上面的WebSocketConfig.requestPort一致
        server_name _;
        underscores_in_headers on;
        location / {
            proxy_http_version 1.1;
            proxy_pass http://FR.com;
            proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header non_idempotent;
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Connection "";
            #proxy_set_header X-Forwarded-Proto "https";
            proxy_connect_timeout 20;
            proxy_read_timeout 1000;
            proxy_send_timeout 300;
        }
        #這裏匹配/socket.io/轉發給websocket的upstream
        location ^~ /socket.io/ {
            proxy_pass http://WBS.com;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_connect_timeout 20;
            proxy_read_timeout 1000;
            proxy_send_timeout 300;
        }
        ...
}
...

2.3 重啟服務

重啟 Nginx 和 FineBI 工程後,設定生效。

使用者只需要開放 8888 埠,即可正常使用 BI 工程,正常使用 websocket。

附件列表


主题: 管理系統
已经是第一篇
已经是最后一篇
  • 有帮助
  • 没帮助
  • 只是浏览
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙