历史版本4 :Web集群&BI的Spider引擎单节点部署方案 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1、描述编辑

功能介绍:

  • 从(时间待定)版本起,FineBI推出了Web集群&BI单节点的应用方案,该方案不需要Spider多节点支持,仅需部署BI的web集群,并规定好主节点,BI的数据更新和所有BI相关请求都会在这个主节点完成,其余fr或者管理系统的请求会随机转发到集群节点上面。

部署方案:

  • 该部署方案在部署好web集群的基础上,在BI的配置文件中规定好主节点,并配置nginx中的主次节点;

前提条件:

  • 已按照Web集群文档部署好集群环境;

2、部署方案编辑

下面我们以集群两个节点,192.168.5.12为主节点,192.168.5.11为子节点,负载均衡地址是192.168.5.11的nginx配置演示部署方案,可以根据实际场景进行修改。

2.1 配置主节点

  1. 关闭Web集群,在外置数据库中找到FINE_CONF_ENTITY表,并在其中增加一条id记录:SystemOptimizationConfig.biClusterMasterNodeHostName,用来规定web集群中的主节点,value对应主节点服务器的hostname。比如主节点服务器为192.168.5.12,其对应hostname为test02,则在表中增加的记录如下图所示:

    1.png



  2. 此处主节点的服务器中,需要确保在/etc/hosts文件中,已经配置好ip和hostname的对应关系,如下图:

    1.png

2.2 配置nginx

  • 进入nginx安装目录/usr/nginx/conf,打开nginx.conf文件,复制如下内容并修改其中的IP和端口,替换掉原文件内容。

worker_processes  auto;
error_log  logs/error.log;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" $upstream_addr';                
    
    access_log  logs/access.log  main;
    sendfile        on;
    keepalive_timeout  65s;
    types_hash_max_size 2048;
    client_header_buffer_size    512k;
    large_client_header_buffers  4 512k;
    client_max_body_size 100M;
      
    upstream BI.main.com {
        server 192.168.5.12:9080 max_fails=15 fail_timeout=300s;
    }
 
    upstream BI.cluster.com {
        server 192.168.5.11:9080 max_fails=15 fail_timeout=300s;
        server 192.168.5.12:9080 max_fails=15 fail_timeout=300s;
    }
     
    upstream WBS.com {
    server 192.168.5.11:48888 max_fails=15 fail_timeout=300s;
    server 192.168.5.12:48888 max_fails=15 fail_timeout=300s;
    ip_hash;
    }
    server {
        listen       80;
        server_name  192.168.5.11;
        underscores_in_headers on;
        location ~*/decision/v5/conf/ {
            proxy_http_version 1.1;
            proxy_pass http://BI.main.com;
            proxy_next_upstream http_500 http_502 http_503 http_504 http_403 http_404 http_429 error timeout invalid_header non_idempotent;
            proxy_redirect off;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  
            proxy_set_header Connection "";
            proxy_connect_timeout    20;
            proxy_read_timeout       1000;
            proxy_send_timeout       300;
            proxy_buffer_size 64k;
            proxy_buffers   32 32k;
            proxy_busy_buffers_size 128k;
        }
 
        location ~*/decision/v5/design/ {
            proxy_http_version 1.1;
            proxy_pass http://BI.main.com;
            proxy_next_upstream http_500 http_502 http_503 http_504 http_403 http_404 http_429 error timeout invalid_header non_idempotent;
            proxy_redirect off;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
            proxy_set_header Connection "";
            proxy_connect_timeout    20;
            proxy_read_timeout       1000;
            proxy_send_timeout       300;
            proxy_buffer_size 64k;
            proxy_buffers   32 32k;
            proxy_busy_buffers_size 128k;
        }
        location ~*/decision/file {
               proxy_http_version 1.1;
               proxy_pass http://BI.cluster.com;
                      proxy_next_upstream http_500 http_502 http_503 http_504 http_403 http_404 http_429 error timeout invalid_header non_idempotent;
                      proxy_redirect off;
                   proxy_set_header Host $host:$server_port;
                       proxy_set_header X-Real-IP $remote_addr;
                   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                       proxy_set_header Connection "";
                       proxy_connect_timeout    20;
                   proxy_read_timeout       1000;
                   proxy_send_timeout       300;
                   proxy_buffer_size 64k;
                   proxy_buffers   32 32k;
                   proxy_busy_buffers_size 128k;
           if ($query_string ~ "TextGenerator") {
               proxy_pass http://BI.main.com;
       }
   }
      location ~*/decision/v10/bi/package/field/ {
            proxy_http_version 1.1;
            proxy_pass http://BI.main.com;
            proxy_next_upstream http_500 http_502 http_503 http_504 http_403 http_404 http_429 error timeout invalid_header non_idempotent;
            proxy_redirect off;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
            proxy_set_header Connection "";
            proxy_connect_timeout    20;
            proxy_read_timeout       1000;
            proxy_send_timeout       300;
        }
 
       location ~*/decision/v10/entry/access/ {
            if ($arg_dashboardType=4){
        }
            proxy_http_version 1.1;
            proxy_pass http://BI.main.com;
            proxy_next_upstream http_500 http_502 http_503 http_504 http_403 http_404 http_429 error timeout invalid_header non_idempotent;
            proxy_redirect off;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Connection "";
            proxy_connect_timeout    20;
            proxy_read_timeout       1000;
            proxy_send_timeout       300;
            proxy_buffer_size 64k;
            proxy_buffers   32 32k;
            proxy_busy_buffers_size 128k;
        }
 
 
        location / {
            proxy_http_version 1.1;
            proxy_pass http://BI.cluster.com;
            proxy_next_upstream http_500 http_502 http_503 http_504 http_403 http_404 http_429 error timeout invalid_header non_idempotent;
            proxy_redirect off;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
        proxy_set_header Connection "";
            proxy_connect_timeout    20;
            proxy_read_timeout       1000;
            proxy_send_timeout       300;
            proxy_buffer_size 64k;
            proxy_buffers   32 32k;
            proxy_busy_buffers_size 128k;          
        }       
   
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server { 
        #FineReport:38889 FineBI:48889
        listen 48889;
        server_name 192.168.5.11;
        location / {
             proxy_http_version 1.1;
             proxy_pass http://WBS.com;
             proxy_connect_timeout 60;
             proxy_read_timeout 120;
             proxy_send_timeout 120;
              
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection "upgrade";
             }
        }
}

ip、port需要修改为自身环境对应的ip和端口,详细的配置参数说明可参考nginx.conf 配置手册,增加了集群主节点的配置。修改后保存该配置。

  • 启动Web集群,即部署完成。