反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

不额外给WebSocket对外开放端口

  • 文档创建者:小小一杆枪
  • 历史版本:7
  • 最近更新:知识库 于 2021-07-08
  • 1. 概述

    1.1 版本

    报表服务器版本
    10.0

    1.2 应用场景

    部分公司对于工程环境安全级别要求较高,对于开发端口限制较多。

    若只开放一个端口,websocket往往无法正常连接。

    1.3 功能简介

    在不能申请开放websocket端口的情况下,可以将socket端口也转发到开放的端口下。

    本文将简单介绍在 Linux+Nginx+Tomcat 环境下,如何仅开放一个端口8888,仍可正常使用websocket。

    2. 示例

    2.1 设置websocket转发端口

    1)10.0.4 及之后版本工程

    管理员登录数据决策系统,点击「管理系统>系统管理>常规」,设置websocket 请求端口。如下图所示:

    此处设置的端口即为工程唯一对外端口,可自行设置,本文以8888为例。

    注:集群环境会默认勾选「已配置代理服务器」,非集群环境需要手动勾选已配置代理服务器(表示已经配置nginx)。

    2)10.0.4 之前版本工程

    超级管理员可通过「fine_conf_entity可视化配置插件」更改WebSocketConfig.requestPort端口号。重启服务器后设置生效。

    注:修改 FineDB 数据库表字段值的方法请参考 FineDB 常用表字段修改 。

    配置项修改规则
    WebSocketConfig.requestPort

    端口号可设置范围:1024~65535

    本文以 8888 为例

    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 和 FineReport 工程后,设置生效。

    用户只需要开放 8888 端口,即可正常使用报表工程,正常使用 websocket。

    附件列表


    主题: 数据决策系统
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526