Debian安装奥哲云枢教程安装流程注意事项资源下载安装准备安装配置JDK安装MySQL安装NGINX安装Redis安装云枢平台启动云枢服务Debian环境常用运维教程配置开机自启动MySQL自动备份脚本Nginx配置HTTPS云枢部署脚本精简IDocView预览插件配置Redis集群一键部署脚本
教程中的数据库和Redis安装教程仅供参考,不提供技术指导。云枢仅使用也不提供相关产品运维服务也强烈建议客户让专业运维来维护相关产品
操作系统:由于CentOS已停止更新优先建议使用Debian 10及以上操作系统 如需使用CentOS请采用CentOS 7.9
数据库支持Oracle 11G、MySQL 5.7.X、SqlServer 2017、达梦 、PostgreSQL 正式环境建议客户采购成熟的数据库产品,例如阿里云的RDS、华为云的RDS
NGINX建议采用1.22.0及以上版本 有国密要求请采用其他支持国密的Web服务器
Redis建议采用3.2.12及以上版本 正式环境建议客户采购成熟的Redis产品,例如阿里云的Redis、华为云的Redis
云枢平台版本和报表的版本存在对应关系不可跨版本部署,对应关系可参考 语雀在线文档
重启云枢服务可执行
/data/cloudpivot/program/backEnd/deploy.sh webapi && /data/reporter-deploy/bin/shutdown.sh && /data/reporter-deploy/bin/startup.sh
查看云枢平台日志可执行
tail -300f /data/cloudpivot/program/backEnd/webapi/logs/log_total.log
升级云枢后需要执行
/data/cloudpivot/program/backEnd/deploy.sh clean
命令
操作系统:Debian 12 点击进入下载页面 操作系统请自行安装,本教程不包含操作系统的安装
推荐几个下载Debian操作系统的国内外镜像网站
阿里云镜像:https://mirrors.aliyun.com
网易云镜像:https://mirrors.163.com
中国科技技术大学镜像:https://mirrors.ustc.edu.cn
Debian官方镜像:https://www.debian.org
下载云枢最新版 直达地址 账号:user1 密码:H3password
备注:releases目录对应云枢平台middleware目录对应的是平台软件(报表在report子目录下面)sources目录对应云枢平台各版本的源代码
本教程需要用到的是云枢平台和报表 请下载对应的资源文件
云枢平台对应文件为cloudpivot{版本}{日期}.zip
报表对应文件为reporter-deploy-{日期}-{版本}.zip
OpenJDK下载 点击 OpenJDK官方下载地址 选择Linux对应版本进行下载 正常情况下载的文件名类似OpenJDK8U-jdk_x64_linux_hotspot_*.tar.gz
文中提到的资源我也下载了一份最新的到自己的服务器上,大家遇上下载慢的情况也可以使用 备份下载链接地址
🔊更新操作系统
xxxxxxxxxx
11apt update && apt install vim -y && apt install zip -y && apt install unzip -y
🔊创建目录
xxxxxxxxxx
11mkdir -p /data
🔊上传文件
上传文件至/data目录下
🔊解压文件
xxxxxxxxxx
41# 解压JDK并重命名
2cd /data/ && mkdir -p /data/jdk && tar -xzvf OpenJDK*.tar.gz -C /data/jdk --strip-components 1 && rm -rf OpenJDK*.tar.gz
3# 解压云枢平台和报表
4cd /data/ && unzip cloudpivot_*.zip && rm -rf cloudpivot_*.zip;unzip reporter-deploy-*.zip && rm -rf reporter-deploy-*.zip
🔊配置JDK环境变量
xxxxxxxxxx
31echo "export JAVA_HOME=/data/jdk
2export CLASSPATH=.:\$JAVA_HOME/jre/lib/rt.jar:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar
3export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile
🔊更新配置文件并验证版本
xxxxxxxxxx
11source /etc/profile && java -version
🔊设置MySQL软件源
xxxxxxxxxx
11echo "deb http://repo.mysql.com/apt/debian/ buster mysql-5.7" | tee /etc/apt/sources.list.d/mysql.list
🔊创建数据库存储目录
xxxxxxxxxx
11mkdir -p /data/mysql/prod
🔊导入密钥
xxxxxxxxxx
11gpg --keyserver keyserver.ubuntu.com --recv-keys B7B3B788A8D3785C && gpg --export --armor B7B3B788A8D3785C > /etc/apt/trusted.gpg.d/debian-archive-buster-mysql.asc
🔊安装MySQL数据库
安装前请使用命令
dpkg -l | grep mariadb
检查操作系统是否安装了mariadb
数据库,如果安装了请使用命令apt remove mariadb* -y
进行卸载之后再执行下面命令
xxxxxxxxxx
11apt update && apt-get install mysql-server -y
🔊修改配置文件
修改
/etc/mysql/my.cnf
配置文件,可根据实际情况修改对应的配置,例如存储位置datadir
之类的参数,如下快捷命令可直接执行
xxxxxxxxxx
601echo '!includedir /etc/mysql/conf.d/
2
3[mysqld]
4# 基础信息配置
5port=3306
6character_set_server=utf8mb4
7datadir=/data/mysql/prod
8socket=/var/run/mysqld/mysqld.sock
9symbolic-links=0
10log-error=/var/log/mysql/error.log
11pid-file=/var/run/mysqld/mysqld.pid
12sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
13# 大小写是否敏感设置
14# 0:表名存储在磁盘是区分大小写的,比较也是区分大小写的
15# 1:表名存储在磁盘是小写的,比较也是小写的
16# 2:表名存储在磁盘是区分大小写的,比较是小写的
17lower_case_table_names=1
18
19# 连接配置
20max_connections=3000
21max_user_connections=3000
22max_connect_errors=100000
23max_allowed_packet=1G
24collation_server=utf8mb4_general_ci
25table_open_cache=8000
26
27# 日志配置
28expire_logs_days=30
29binlog_format=mixed
30slow_query_log=ON
31slow_query_log_file=/data/mysql/prod/slow.log
32long_query_time=3
33log_queries_not_using_indexes=on
34
35# innodb配置
36innodb_file_per_table=1
37# 根据服务器上的可用RAM,你可能考虑增加这个值
38innodb_buffer_pool_size=8G
39innodb_log_file_size=1024M
40innodb_log_buffer_size=64M
41
42# 集群配置
43# 唯一标识符,用于标识MySQL集群中的每个服务器 每个服务器应依次递增
44server-id=1
45# 用于设定每个节点之间的自增主键的起始值 每个服务器应依次递增
46auto-increment-offset=1
47# 用于设定每个节点之间的自增主键的增量 一般和服务器节点数量一致
48auto-increment-increment=2
49log-bin=mysql-bin
50relay-log=localhost-relay-bin
51relay-log-index=slave-relay-bin.index
52
53# 需要同步的库 网上教程多是逗号隔开这是错误的配置方式
54binlog-do-db=cloudpivot
55binlog-do-db=h3yun_report
56
57[mysql]
58default_character_set=utf8mb4
59[client]
60default_character_set=utf8mb4' > /etc/mysql/my.cnf && chown -R mysql:mysql /data/mysql/prod/
🔊启动MySQL并设置开机自启动
xxxxxxxxxx
11systemctl restart mysql && systemctl enable mysql
🔊登录MySQL
xxxxxxxxxx
11mysql -u root -p
🔊创建数据库和用户
此操作是在登录MySQL后执行,并非是Shell命令
xxxxxxxxxx
131-- 创建云枢平台数据库
2CREATE DATABASE IF NOT EXISTS cloudpivot DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
3-- 创建云枢报表数据库
4CREATE DATABASE IF NOT EXISTS h3yun_report DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
5-- 授权平台库并创建用户 用户名authine 密码请自行定义
6GRANT ALL PRIVILEGES ON cloudpivot.* TO 'authine'@'%' identified by '你的密码';
7-- 授权报表库
8GRANT ALL PRIVILEGES ON h3yun_report.* TO 'authine'@'%';
9-- 刷新权限
10FLUSH PRIVILEGES;
11-- 取消授权可以使用以下语句
12-- REVOKE ALL PRIVILEGES ON cloudpivot.* FROM authine;
13-- REVOKE ALL PRIVILEGES ON h3yun_report.* FROM authine;
🔊初始化数据库
此操作是在登录MySQL后执行,并非是Shell命令
注意:第三步很多客户都未配置或配置错误导致登录出现OAuth Error。请大家仔细看说明,要修改此配置信息请先修改数据->停止后端服务->清空Redis缓存->重启云枢
xxxxxxxxxx
101-- 第一步切换数据库
2use cloudpivot;
3-- 第二步执行初始SQL
4source /data/cloudpivot/db/migration/mysql/deploy/install/all_init.sql
5-- 第三步修改权限表 此配置是配置云枢合法的登录地址,未配置的地址将无法登录。支持多套地址,每组都为四个以逗号隔开,请将{host}替换为你自己服务的地址 http(s)://IP:PORT
6UPDATE base_security_client SET registeredRedirectUris='{host}/admin,{host}/admin#/oauth,{host}/oauth,{host}/mobile/oauth' WHERE id = '8a5da52ed126447d359e70c05721a8aa';
7-- 第三步切换数据库
8use h3yun_report;
9-- 第四步执行初始SQL
10source /data/reporter-deploy/sql/report_mysql.sql
🔊配置NGINX软件源并安装
可参考NGINX官网安装教程
xxxxxxxxxx
51apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring -y
2curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
3gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
4echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/debian $(lsb_release -cs) nginx" | tee /etc/apt/sources.list.d/nginx.list
5apt update && apt install nginx -y
🔊修改NGINX配置
使用命令
vim /etc/nginx/nginx.conf
或可视化编辑工具将该配置文件修改成如下内容
注意:6.12.X及以上采用如下配置
xxxxxxxxxx
1701# For more information on configuration, see:
2# * Official English Documentation: http://nginx.org/en/docs/
3# * Official Russian Documentation: http://nginx.org/ru/docs/
4
5user nginx;
6worker_processes auto;
7pid /run/nginx.pid;
8error_log /var/log/nginx/error.log;
9
10# Load dynamic modules. See /usr/share/nginx/README.dynamic.
11include /usr/share/nginx/modules/*.conf;
12
13events {
14 use epoll;
15 multi_accept on;
16 worker_connections 65535;
17}
18
19http {
20 upstream cloudpivot {
21 least_conn;
22 server 127.0.0.1:8080;
23 }
24 upstream report {
25 least_conn;
26 server 127.0.0.1:6061;
27 }
28
29 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
30 '$status $body_bytes_sent "$http_referer" '
31 '"$http_user_agent" "$http_x_forwarded_for" "$upstream_addr" "$upstream_status"';
32 #设定mime类型,类型由mime.type文件定义
33 include /etc/nginx/mime.types;
34 default_type application/octet-stream;
35 charset utf-8;
36 sendfile on;
37 keepalive_timeout 65;
38 tcp_nopush on;
39 tcp_nodelay on;
40 types_hash_max_size 2048;
41 gzip on;
42 gzip_vary off;
43 gzip_disable "MSIE [1-6]\.";
44 gzip_min_length 1k;
45 gzip_buffers 4 16k;
46 gzip_comp_level 6;
47 gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript image/jpeg image/gif image/png;
48 proxy_hide_header X-Powered-By;
49 proxy_hide_header Server;
50 #absolute_redirect off;
51
52 #这里可以配置限流操作
53 #定义一个名为allips的limit_req_zone用来存储session,大小是10M内存,
54 #以$binary_remote_addr 为key,限制平均每秒的请求为20个,
55 #1M能存储16000个状态,rete的值必须为整数,
56 #如果限制两秒钟一个请求,可以设置成30r/m
57 #limit_req_zone $binary_remote_addr zone=allips:10m rate=50r/s;
58
59 #关闭访问日志
60 #access_log off;
61 access_log /var/log/nginx/access.log main;
62
63 server {
64 listen 80 default_server;
65 listen [::]:80 default_server;
66 server_name _;
67
68 root /data/cloudpivot/program/frontEnd/portal/;
69 server_tokens off;
70 #Load configuration files for the default server block.
71 include /etc/nginx/default.d/*.conf;
72
73 location / {
74 try_files $uri $uri/index.html $uri/ /index.html;
75 #absolute_redirect off;
76 #入口页面不缓存
77 add_header Last-Modified $date_gmt;
78 add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
79 if_modified_since off;
80 expires off;
81 etag off;
82 }
83
84 location ~* ^.+\.(css|js|ico|gif|jpg|jpeg|png)$ {
85 log_not_found off;
86 #关闭日志
87 access_log off;
88 #缓存时间30天
89 expires 30d;
90 }
91
92 location ^~ /api/ {
93 proxy_pass http://cloudpivot;
94 #proxy_set_header Host $host:$server_port;
95 proxy_set_header X-Real-IP $remote_addr;
96 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
97
98 #可将下面两个配置为固定值: 对应入口层协议和端口 (适用于: nginx外层还有proxy并与当前scheme, server_port不一致的情况)
99 proxy_set_header X-Forwarded-Proto $scheme;
100 #proxy_set_header X-Forwarded-Proto https;
101 proxy_set_header X-Forwarded-Port $server_port;
102 #proxy_set_header X-Forwarded-Port 443;
103
104 #absolute_redirect off;
105 client_max_body_size 200m;
106 proxy_read_timeout 300;
107 }
108
109 location /dashboard/ {
110 proxy_pass http://report/dashboard/;
111 #proxy_set_header Host $host:$server_port;
112 proxy_set_header X-Real-IP $remote_addr;
113 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
114 proxy_set_header X-Forwarded-Proto $scheme;
115 proxy_set_header X-Forwarded-Port $server_port;
116 #absolute_redirect off;
117 client_max_body_size 200m;
118 proxy_read_timeout 300;
119 }
120
121 # 云枢8.0配套报表需要 不配置表单的统计分析功能无法使用 8.0以下可以取消此配置
122 location /statistic/ {
123 proxy_pass http://report/statistic/;
124 #proxy_set_header Host $host:$server_port;
125 proxy_set_header X-Real-IP $remote_addr;
126 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
127 proxy_set_header X-Forwarded-Proto $scheme;
128 proxy_set_header X-Forwarded-Port $server_port;
129 #absolute_redirect off;
130 client_max_body_size 200m;
131 proxy_read_timeout 300;
132 }
133
134 location /common/ {
135 proxy_pass http://report/common/;
136 #proxy_set_header Host $host:$server_port;
137 proxy_set_header X-Real-IP $remote_addr;
138 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
139 proxy_set_header X-Forwarded-Proto $scheme;
140 proxy_set_header X-Forwarded-Port $server_port;
141 #absolute_redirect off;
142 client_max_body_size 200m;
143 proxy_read_timeout 300;
144 }
145
146 location /data-source/ {
147 proxy_pass http://report/data-source/;
148 #proxy_set_header Host $host:$server_port;
149 proxy_set_header X-Real-IP $remote_addr;
150 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
151 proxy_set_header X-Forwarded-Proto $scheme;
152 proxy_set_header X-Forwarded-Port $server_port;
153 #absolute_redirect off;
154 client_max_body_size 200m;
155 proxy_read_timeout 300;
156 }
157
158 location /v1/ {
159 proxy_pass http://cloudpivot/api/v1/;
160 #proxy_set_header Host $host:$server_port;
161 proxy_set_header X-Real-IP $remote_addr;
162 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
163 proxy_set_header X-Forwarded-Proto $scheme;
164 proxy_set_header X-Forwarded-Port $server_port;
165 #absolute_redirect off;
166 client_max_body_size 200m;
167 proxy_read_timeout 300;
168 }
169 }
170}
注意:6.12.X以下采用如下配置
xxxxxxxxxx
1481# For more information on configuration, see:
2# * Official English Documentation: http://nginx.org/en/docs/
3# * Official Russian Documentation: http://nginx.org/ru/docs/
4
5user nginx;
6worker_processes auto;
7pid /run/nginx.pid;
8error_log /var/log/nginx/error.log;
9
10# Load dynamic modules. See /usr/share/nginx/README.dynamic.
11include /usr/share/nginx/modules/*.conf;
12
13events {
14 use epoll;
15 multi_accept on;
16 worker_connections 65535;
17}
18
19http {
20 upstream cloudpivot {
21 least_conn;
22 server 127.0.0.1:8080;
23 }
24 upstream report_dashboard {
25 least_conn;
26 server 127.0.0.1:6061;
27 }
28 upstream report_datasource {
29 least_conn;
30 server 127.0.0.1:6063;
31 }
32
33 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
34 '$status $body_bytes_sent "$http_referer" '
35 '"$http_user_agent" "$http_x_forwarded_for" "$upstream_addr" "$upstream_status"';
36 #设定mime类型,类型由mime.type文件定义
37 include /etc/nginx/mime.types;
38 default_type application/octet-stream;
39 charset utf-8;
40 sendfile on;
41 keepalive_timeout 65;
42 tcp_nopush on;
43 tcp_nodelay on;
44 types_hash_max_size 2048;
45 gzip on;
46 gzip_vary off;
47 gzip_disable "MSIE [1-6]\.";
48 gzip_min_length 1k;
49 gzip_buffers 4 16k;
50 gzip_comp_level 6;
51 gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript image/jpeg image/gif image/png;
52 proxy_hide_header X-Powered-By;
53 proxy_hide_header Server;
54
55 #这里可以配置限流操作
56 #定义一个名为allips的limit_req_zone用来存储session,大小是10M内存,
57 #以$binary_remote_addr 为key,限制平均每秒的请求为20个,
58 #1M能存储16000个状态,rete的值必须为整数,
59 #如果限制两秒钟一个请求,可以设置成30r/m
60 #limit_req_zone $binary_remote_addr zone=allips:10m rate=50r/s;
61
62 #关闭访问日志
63 #access_log off;
64 access_log /var/log/nginx/access.log main;
65
66 server {
67 listen 80 default_server;
68 listen [::]:80 default_server;
69 server_name _;
70
71 root /data/cloudpivot/program/frontEnd/portal/;
72 server_tokens off;
73 #Load configuration files for the default server block.
74 include /etc/nginx/default.d/*.conf;
75
76 location / {
77 try_files $uri $uri/index.html $uri/ /index.html;
78 #absolute_redirect off;
79 #入口页面不缓存
80 add_header Last-Modified $date_gmt;
81 add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
82 if_modified_since off;
83 expires off;
84 etag off;
85 }
86
87 location ~* ^.+\.(css|js|ico|gif|jpg|jpeg|png)$ {
88 log_not_found off;
89 #关闭日志
90 access_log off;
91 #缓存时间30天
92 expires 30d;
93 }
94
95 location ^~ /api/ {
96 proxy_pass http://cloudpivot;
97 #proxy_set_header Host $host:$server_port;
98 proxy_set_header X-Real-IP $remote_addr;
99 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
100
101 #可将下面两个配置为固定值: 对应入口层协议和端口 (适用于: nginx外层还有proxy并与当前scheme, server_port不一致的情况)
102 proxy_set_header X-Forwarded-Proto $scheme;
103 #proxy_set_header X-Forwarded-Proto https;
104 proxy_set_header X-Forwarded-Port $server_port;
105 #proxy_set_header X-Forwarded-Port 443;
106
107 #absolute_redirect off;
108 client_max_body_size 200m;
109 proxy_read_timeout 300;
110 }
111
112 location /dashboard/ {
113 proxy_pass http://report_dashboard/;
114 #proxy_set_header Host $host:$server_port;
115 proxy_set_header X-Real-IP $remote_addr;
116 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
117 proxy_set_header X-Forwarded-Proto $scheme;
118 proxy_set_header X-Forwarded-Port $server_port;
119 #absolute_redirect off;
120 client_max_body_size 200m;
121 proxy_read_timeout 300;
122 }
123
124 location /data-source/ {
125 proxy_pass http://report_datasource/;
126 #proxy_set_header Host $host:$server_port;
127 proxy_set_header X-Real-IP $remote_addr;
128 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
129 proxy_set_header X-Forwarded-Proto $scheme;
130 proxy_set_header X-Forwarded-Port $server_port;
131 #absolute_redirect off;
132 client_max_body_size 200m;
133 proxy_read_timeout 300;
134 }
135
136 location /v1/ {
137 proxy_pass http://cloudpivot/api/v1/;
138 #proxy_set_header Host $host:$server_port;
139 proxy_set_header X-Real-IP $remote_addr;
140 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
141 proxy_set_header X-Forwarded-Proto $scheme;
142 proxy_set_header X-Forwarded-Port $server_port;
143 #absolute_redirect off;
144 client_max_body_size 200m;
145 proxy_read_timeout 300;
146 }
147 }
148}
🔊配置开机自启动
xxxxxxxxxx
11systemctl restart nginx && systemctl enable nginx.service
🔊在线安装 如遇安装失败请参考官网安装教程
xxxxxxxxxx
31curl -fsSL https://packages.redis.io/gpg | gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
2echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/redis.list
3apt update && apt install -y redis
🔊修改配置文件
xxxxxxxxxx
11vim /etc/redis/redis.conf
主要修改bind、requirepass两个配置
xxxxxxxxxx
41#允许所有地址连接
2bind 0.0.0.0
3#配置密码
4requirepass Authine!2024
🔊重启服务
xxxxxxxxxx
11systemctl restart redis-server.service && systemctl enable redis-server.service
🔊修改云枢平台配置文件
使用命令
vim /data/cloudpivot/program/backEnd/webapi/application-prod.yml
修改配置文件 主要修改内容如下,其他配置请参考云枢开发者手册数据库配置:主要是url、username、password三个属性
xxxxxxxxxx
161spring
2datasource
3#数据库驱动:
4#driver-class-name: oracle.jdbc.OracleDriver # Oracle
5#driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver # SQL Server
6#driver-class-name: dm.jdbc.driver.DmDriver # DM
7#driver-class-name: org.postgresql.Driver # PostgreSQL
8driver-class-name com.mysql.cj.jdbc.Driver # MySQL
9#数据库连接:
10#url: jdbc:oracle:thin:@127.0.0.1:1521:orcl #ORACLE
11#url: jdbc:sqlserver://127.0.0.1:3433;SelectMethod=cursor;database=cloudpivot #SQL Server
12#url: jdbc:dm://127.0.0.1:5236/cloudpivot # DM
13#url: jdbc:postgresql://127.0.0.1:5432/cloudpivot
14url jdbc mysql //10.10.10.33 3306/cloudpivot?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&useSSL=false #MySQL
15username authine
16password Password
Redis配置:主要是host、database、password三个属性
xxxxxxxxxx
71spring
2redis
3host 127.0.0.1 #地址
4database 0 #集群模式下不指定数据库,注释此选项
5password Password #密码
6port 6379 #端口
7prefix""
报表配置:主要是thirdDatasourceUrl属性 注意:5.X以下版本报表地址修改为NGINX代理后的报表服务地址 5.X及以上版本直接可配置报表服务地址
xxxxxxxxxx
81cloudpivot
2report
3#datasourceurl: http://127.0.0.1:6060 #报表integrate-webapi项目的访问地址,如果是同服务器部署并且报表使用默认的6060端口 可直接使用http://127.0.0.1:6060
4supportoralce true #是否支持oracle 报表后台版本20200318-2.3.0.4 以后默认打开
5# 注意:5.X及以上版本配置报表地址即可
6thirdDatasourceUrl http //127.0.0.1 6061 #报表自定义sql服务器接口地址
7# 注意:5.X以下版本配置NGINX代理后的报表地址
8#thirdDatasourceUrl: http://127.0.0.1:80 #报表自定义sql服务器接口地址
🔊修改报表配置文件
先执行以下命令再做编辑
xxxxxxxxxx
11cd /data/reporter-deploy/bin/ && chmod 755 *
使用命令
vim /data/reporter-deploy/bin/report.config
修改配置文件 主要修改内容如下,其他配置请参考云枢开发者手册注意:5.X以下版本报表地址修改为NGINX代理后的云枢服务地址 5.X及以上版本直接可配置云枢服务API地址
xxxxxxxxxx
91# 注意:5.X及以上版本配置云枢地址即可
2REPORTER_ADAPTOR_HOST="http://127.0.0.1:8080/api/"
3
4# 注意:5.X以下版本配置NGINX代理后的云枢地址
5REPORTER_ADAPTOR_PORT=80
6REPORTER_ADAPTOR_HOST="127.0.0.1"
7
8# 日志目录
9REPORTER_LOG_DIR=/data/reporter-deploy/applog
数据库配置:主要是REPORTER_DATASTORE_DB_URL、REPORTER_DATASTORE_DB_USER、REPORTER_DATASTORE_DB_PASSWORD三个属性
xxxxxxxxxx
91# mysql
2REPORTER_DATASTORE_DB_DRIVER="com.mysql.cj.jdbc.Driver"
3REPORTER_DATASTORE_DB_URL="jdbc:mysql://host:3306/h3yun_report?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true"
4
5# oracle
6# REPORTER_DATASTORE_DB_DRIVER="oracle.jdbc.driver.OracleDriver"
7# REPORTER_DATASTORE_DB_URL="jdbc:oracle:thin:@//host:41521/db_name"
8REPORTER_DATASTORE_DB_USER="db_user"
9REPORTER_DATASTORE_DB_PASSWORD="db_password"
安装配置文件:此操作主要是为了执行脚本生成配置文件
xxxxxxxxxx
11/data/reporter-deploy/bin/setup.sh
🔊启动云枢平台
如果有升级或者是覆盖安装的请先执行
/data/cloudpivot/program/backEnd/deploy.sh clean
命令清除一下老版本安装信息
xxxxxxxxxx
11/data/cloudpivot/program/backEnd/deploy.sh webapi
🔊启动报表服务
xxxxxxxxxx
11/data/reporter-deploy/bin/startup.sh
🔊验证登录
浏览器输入地址http://IP:PORT/admin输入账号:
admin
密码:123456
登录后即可进入后台管理,http://IP:PORT为普通用户登录地址需初始化组织架构后才可使用。注意:默认安装完成后云枢平台需要进行组织架构配置(系统管理>组织配置)和文件存储配置(系统管理>统一配置>文件存储)
说明:不初始化组织架构普通用户登录地址会出现空白页,未配置文件存储会导致导入导出及文件相关控件无法使用,application.yml还有更多配置请自行查看都有详细注解
Linux开机自启动有多种方式,本教程采用最简单最粗暴也是最爽最有效的方式,要科普Linux自启动基础可以参考Linux开机自启动基础运维知识 注意:脚本编码应为Liunx下可识别的编码和格式,Windows下编写的可能会出现换行符无法识别等情况,大家可以参考dos2unix这个命令,用它来进行转码
🔊编写启动脚本,可参考以下命令
xxxxxxxxxx
21echo '#!/bin/bash
2/data/reporter-deploy/bin/startup.sh && /data/cloudpivot/program/backEnd/deploy.sh webapi' > /data/autorun.sh && chmod +x /data/autorun.sh
🔊利用Linux自带cron功能完成开机自启动,使用crontab -e
命令进入编辑界面,新增一行其内容如下。然后保存即可
xxxxxxxxxx
11@reboot . /etc/profile;/bin/bash /data/autorun.sh
脚本信息修改完成之后可以利用
crontab -e
命令设置定时任务达到自动备份目的示例:每天晚上十点备份一次数据库
00 22 * * * /bin/bash /data/autobackup.sh
注意:脚本依赖
net-tools
工具 未安装的请自行安装
xxxxxxxxxx
1171
2
3# 注意备份的目录不要有其他东西,过期删除可能会把对应的其他文件一并删除了
4# 数据库连接配置信息 建议直接用超级管理员账号,普通账号可能有些函数没有权限无法备份
5mysql_host="localhost"
6mysql_port="3306"
7mysql_user="root"
8mysql_pwd="你的密码"
9mysql_charset="utf8"
10
11# 异地备份SSH连接信息,通过SCP将备份文件传输至远程机器 先用ssh <user>@<host> 远程连接一下目标服务器
12# 是否开启异地备份可选值(ON/OFF) 为ON其他选项必填
13remote_back="OFF"
14# 远程机器SSH信息
15remote_host=""
16remote_port=""
17remote_user=""
18remote_pwd=""
19# 远程备份目录 需保证此目录已存在
20remote_dir=/data/backup/
21
22# 要备份的数据库名称,多个用空格分开隔开 如("db1" "db2" "db3")
23backup_db_arr=("cloudpivot" "h3yun_report")
24# 备份数据存放位置,末尾请不要带"/",此项可以保持默认,程序会自动创建文件夹
25root_dir=/data
26# 备份文件夹
27backup_folder=backup
28# 是否开启过期备份删除 ON为开启 OFF为关闭
29expire_backup_delete="ON"
30# 过期时间天数 此项只有在expire_backup_delete开启时有效
31expire_days=30
32
33# 使用关联数组来定义每个数据库的排除表(以逗号分隔)
34declare -A exclude_data_tables
35exclude_data_tables["cloudpivot"]="h_log_biz_object,h_log_biz_service,h_log_business_rule_content,h_log_business_rule_data_trace,h_log_business_rule_header,h_log_business_rule_node,h_log_environment,h_log_login,h_log_metadata,h_log_rule,h_log_rule_node,h_log_synchro,h_log_workflow_exception,h_org_synchronize_log"
36exclude_data_tables["h3yun_report"]="" # 可以根据需要填充排除表名
37
38# 本行开始以下不需要修改
39backup_time=`date +%Y%m%d%H%M` #定义备份详细时间
40backup_Ymd=`date +%Y%m%d` #定义备份目录中的年月日时间
41backup_dir=$root_dir/$backup_folder/$backup_Ymd #备份文件夹全路径
42welcome_msg="欢迎使用MySQL备份工具,即将进行数据库备份!" #欢迎语
43
44# 判断MySQL是否启动,mysql没有启动则备份退出
45mysql_ps=`ps -ef |grep mysql |wc -l`
46mysql_listen=`netstat -an | grep LISTEN | grep $mysql_port | wc -l`
47if [ [$mysql_ps == 0] -o [$mysql_listen == 0] ]; then
48 echo -e "\033[31m数据库服务未启动,停止备份\033[0m"
49 exit
50else
51 echo -e "\033[32m$welcome_msg \033[0m"
52fi
53
54export MYSQL_PWD=$mysql_pwd
55# 连接到MySQL数据库,无法连接则备份退出
56mysql -h$mysql_host -P$mysql_port -u$mysql_user << end
57exit
58end
59
60flag=`echo $?`
61if [ $flag != "0" ]; then
62 echo -e "\033[31m无法连接到数据库,停止备份\033[0m"
63 exit
64else
65 echo -e "\033[36m已连接到【$mysql_host】数据库,备份即将开始......\033[0m"
66fi
67
68# 判断有没有定义备份的数据库,如果定义则开始备份,否则退出备份
69if [ "$backup_db_arr" != "" ];then
70 for dbname in ${backup_db_arr[@]}
71 do
72 echo -e "\033[32m数据库【$dbname】备份开始......\033[0m"
73 `mkdir -p $backup_dir`
74
75 # 准备排除表的参数
76 exclude_data_tables_str=""
77 IFS=',' read -ra tables <<< "${exclude_data_tables[$dbname]}"
78 for table in "${tables[@]}"
79 do
80 exclude_data_tables_str+=" --ignore-table=$dbname.$table"
81 done
82
83 # 备份表数据(排除部分表)
84 mysqldump -h"$mysql_host" -P"$mysql_port" -u"$mysql_user" "$dbname" \
85 --default-character-set="$mysql_charset" --routines -t \
86 $exclude_data_tables_str \
87 --triggers --events --single-transaction --set-gtid-purged=OFF | gzip > "$backup_dir/$dbname-${backup_time}_data.sql.gz"
88
89 # 备份表结构(不排除任何表)
90 mysqldump -h"$mysql_host" -P"$mysql_port" -u"$mysql_user" "$dbname" \
91 --default-character-set="$mysql_charset" --routines -d \
92 --triggers --events --single-transaction --set-gtid-purged=OFF | gzip > "$backup_dir/$dbname-${backup_time}.sql.gz"
93 flag=`echo $?`
94 if [ $flag == "0" ];then
95 echo -e "\033[31m数据库【$dbname】已备份至【$backup_dir】目录下\033[0m"
96 else
97 echo -e "\033[31m数据库【$dbname】备份失败\033[0m"
98 fi
99 done
100else
101 echo -e "\033[31m未定义备份数据库,备份停止\033[0m"
102 exit
103fi
104
105# 如果开启了删除过期备份,则进行删除操作
106if [ "$expire_backup_delete" == "ON" ] && [ "$root_dir" != "" ];then
107 `find $root_dir/$backup_folder/ -type d -mtime +$expire_days | xargs rm -rf`
108 echo -e "\033[35m删除过期备份成功\033[0m"
109fi
110
111# 如果开启了异地备份,则进行异地备份
112if [ "$remote_back" == "ON" ] && [ "$remote_host" != "" ] && [ "$remote_port" != "" ] && [ "$remote_user" != "" ] && [ "$remote_pwd" != "" ];then
113 echo -e "\033[36m所有数据库已成功本地备份!即将进行异地备份传输,请稍等......\033[0m"
114 sshpass -p "$remote_pwd" scp -r -P $remote_port $backup_dir $remote_user@$remote_host:$remote_dir
115 echo -e "\033[35m已完成所有数据库备份并已传输至远程【$remote_dir/$backup_Ymd】感谢使用\033[0m"
116fi
117exit
报表5.X以下版本不支持走SSL协议,所以需要用两个端口把报表和云枢分开,云枢对外走HTTPS云枢和报表交互走内网HTTP
拆分Nginx配置文件,此步主要是为了方便管理配置文件方便其后续有其他服务共用Nginx,如果没有此需求可把第二第三步配置文件合并放入nginx.conf
修改/etc/nginx/nginx.conf配置文件为如下内容
xxxxxxxxxx
501#nginx通用配置
2user nginx;
3worker_processes auto;
4pid /run/nginx.pid;
5error_log /var/log/nginx/error.log;
6include /usr/share/nginx/modules/*.conf;
7
8events {
9 use epoll;
10 multi_accept on;
11 worker_connections 65535;
12}
13
14http {
15 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
16 '$status $body_bytes_sent "$http_referer" '
17 '"$http_user_agent" "$http_x_forwarded_for" "$upstream_addr" "$upstream_status"';
18 #设定mime类型,类型由mime.type文件定义
19 include /etc/nginx/mime.types;
20 default_type application/octet-stream;
21 charset utf-8;
22 sendfile on;
23 keepalive_timeout 65;
24 tcp_nopush on;
25 tcp_nodelay on;
26 types_hash_max_size 2048;
27 gzip on;
28 gzip_vary off;
29 gzip_disable "MSIE [1-6]\.";
30 gzip_min_length 1k;
31 gzip_buffers 4 16k;
32 gzip_comp_level 6;
33 gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript image/jpeg image/gif image/png;
34 proxy_hide_header X-Powered-By;
35 proxy_hide_header Server;
36 #absolute_redirect off;
37
38 #这里可以配置限流操作
39 #定义一个名为allips的limit_req_zone用来存储session,大小是10M内存,
40 #以$binary_remote_addr 为key,限制平均每秒的请求为20个,
41 #1M能存储16000个状态,rete的值必须为整数,
42 #如果限制两秒钟一个请求,可以设置成30r/m
43 #limit_req_zone $binary_remote_addr zone=allips:10m rate=50r/s;
44
45 #关闭访问日志
46 #access_log off;
47 access_log /var/log/nginx/access.log main;
48 include /etc/nginx/conf.d/*.conf;
49}
50
在/etc/nginx/conf.d/目录下添加云枢平台HTTPS配置文件
新增/etc/nginx/conf.d/cloudpivot.conf配置文件,配置内容如下
注意:6.12.X及以上采用如下配置
xxxxxxxxxx
1331#对应的云枢服务配置信息 多节点负载均衡模式可自行调整
2upstream cloudpivot {
3 least_conn;
4 server 127.0.0.1:8080;
5}
6#对应的报表服务配置信息 多节点负载均衡模式可自行调整
7upstream report {
8 least_conn;
9 server 127.0.0.1:6061;
10}
11#80端口强制跳转到443端口可以用此配置 非80/443端口强制跳转可用error_page 497 301 https://$host:$server_port$request_uri;
12server {
13 listen 80;
14 listen [::]:80;
15 server_name <你的域名>;
16 rewrite ^(.*)$ https://$host$1 permanent;
17}
18#https端口配置
19server {
20 listen 443 ssl default_server;
21 listen [::]:443 ssl default_server;
22 server_name <你的域名>;
23
24 ssl_certificate <你的pem格式证书文件>;
25 ssl_certificate_key <你的key格式证书文件>;
26 ssl_session_timeout 5m;
27 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
28 ssl_protocols TLSv1.2 TLSv1.3;
29 ssl_prefer_server_ciphers on;
30 #非443/80端口强制跳转可以使用如下配置
31 #error_page 497 301 https://$host:$server_port$request_uri;
32
33 root /data/cloudpivot/program/frontEnd/portal/;
34 server_tokens off;
35 include /etc/nginx/default.d/*.conf;
36
37 location / {
38 try_files $uri $uri/index.html $uri/ /index.html;
39 #absolute_redirect off;
40 #入口页面不缓存
41 add_header Last-Modified $date_gmt;
42 add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
43 if_modified_since off;
44 expires off;
45 etag off;
46 }
47
48 location ~* ^.+\.(css|js|ico|gif|jpg|jpeg|png)$ {
49 log_not_found off;
50 #关闭日志
51 access_log off;
52 #缓存时间30天
53 expires 30d;
54 }
55
56 location ^~ /api/ {
57 proxy_pass http://cloudpivot;
58 #proxy_set_header Host $host:$server_port;
59 proxy_set_header X-Real-IP $remote_addr;
60 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
61
62 #可将下面两个配置为固定值: 对应入口层协议和端口 (适用于: nginx外层还有proxy并与当前scheme, server_port不一致的情况)
63 proxy_set_header X-Forwarded-Proto $scheme;
64 #proxy_set_header X-Forwarded-Proto https;
65 proxy_set_header X-Forwarded-Port $server_port;
66 #proxy_set_header X-Forwarded-Port 8888;
67
68 #absolute_redirect off;
69 client_max_body_size 200m;
70 proxy_read_timeout 300;
71 }
72
73 location /v1/ {
74 proxy_pass http://cloudpivot/api/v1/;
75 #proxy_set_header Host $host:$server_port;
76 proxy_set_header X-Real-IP $remote_addr;
77 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
78 proxy_set_header X-Forwarded-Proto $scheme;
79 proxy_set_header X-Forwarded-Port $server_port;
80 #absolute_redirect off;
81 client_max_body_size 200m;
82 proxy_read_timeout 300;
83 }
84
85 location /dashboard/ {
86 proxy_pass http://report/dashboard/;
87 #proxy_set_header Host $host:$server_port;
88 proxy_set_header X-Real-IP $remote_addr;
89 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
90 proxy_set_header X-Forwarded-Proto $scheme;
91 proxy_set_header X-Forwarded-Port $server_port;
92 #absolute_redirect off;
93 client_max_body_size 200m;
94 proxy_read_timeout 300;
95 }
96
97 # 云枢8.0配套报表需要 不配置表单的统计分析功能无法使用 8.0以下可以取消此配置
98 location /statistic/ {
99 proxy_pass http://report/statistic/;
100 #proxy_set_header Host $host:$server_port;
101 proxy_set_header X-Real-IP $remote_addr;
102 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
103 proxy_set_header X-Forwarded-Proto $scheme;
104 proxy_set_header X-Forwarded-Port $server_port;
105 #absolute_redirect off;
106 client_max_body_size 200m;
107 proxy_read_timeout 300;
108 }
109
110 location /common/ {
111 proxy_pass http://report/common/;
112 #proxy_set_header Host $host:$server_port;
113 proxy_set_header X-Real-IP $remote_addr;
114 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
115 proxy_set_header X-Forwarded-Proto $scheme;
116 proxy_set_header X-Forwarded-Port $server_port;
117 #absolute_redirect off;
118 client_max_body_size 200m;
119 proxy_read_timeout 300;
120 }
121
122 location /data-source/ {
123 proxy_pass http://report/data-source/;
124 #proxy_set_header Host $host:$server_port;
125 proxy_set_header X-Real-IP $remote_addr;
126 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
127 proxy_set_header X-Forwarded-Proto $scheme;
128 proxy_set_header X-Forwarded-Port $server_port;
129 #absolute_redirect off;
130 client_max_body_size 200m;
131 proxy_read_timeout 300;
132 }
133}
注意:6.12.X以下采用如下配置
xxxxxxxxxx
1131#对应的云枢服务配置信息 多节点负载均衡模式可自行调整
2upstream cloudpivot {
3 least_conn;
4 server 127.0.0.1:8080;
5}
6#对应的报表服务配置信息 多节点负载均衡模式可自行调整
7upstream report_dashboard {
8 least_conn;
9 server 127.0.0.1:6061;
10}
11#对应的报表服务配置信息 多节点负载均衡模式可自行调整
12upstream report_datasource {
13 least_conn;
14 server 127.0.0.1:6063;
15}
16#80端口强制跳转到443端口可以用此配置 非80/443端口强制跳转可用error_page 497 301 https://$host:$server_port$request_uri;
17server {
18 listen 80;
19 listen [::]:80;
20 server_name <你的域名>;
21 rewrite ^(.*)$ https://$host$1 permanent;
22}
23#https端口配置
24server {
25 listen 443 ssl default_server;
26 listen [::]:443 ssl default_server;
27 server_name <你的域名>;
28
29 ssl_certificate <你的pem格式证书文件>;
30 ssl_certificate_key <你的key格式证书文件>;
31 ssl_session_timeout 5m;
32 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
33 ssl_protocols TLSv1.2 TLSv1.3;
34 ssl_prefer_server_ciphers on;
35 #非443/80端口强制跳转可以使用如下配置
36 #error_page 497 301 https://$host:$server_port$request_uri;
37
38 root /data/cloudpivot/program/frontEnd/portal/;
39 server_tokens off;
40 include /etc/nginx/default.d/*.conf;
41
42 location / {
43 try_files $uri $uri/index.html $uri/ /index.html;
44 #absolute_redirect off;
45 #入口页面不缓存
46 add_header Last-Modified $date_gmt;
47 add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
48 if_modified_since off;
49 expires off;
50 etag off;
51 }
52
53 location ~* ^.+\.(css|js|ico|gif|jpg|jpeg|png)$ {
54 log_not_found off;
55 #关闭日志
56 access_log off;
57 #缓存时间30天
58 expires 30d;
59 }
60
61 location ^~ /api/ {
62 proxy_pass http://cloudpivot;
63 #proxy_set_header Host $host:$server_port;
64 proxy_set_header X-Real-IP $remote_addr;
65 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
66
67 #可将下面两个配置为固定值: 对应入口层协议和端口 (适用于: nginx外层还有proxy并与当前scheme, server_port不一致的情况)
68 proxy_set_header X-Forwarded-Proto $scheme;
69 #proxy_set_header X-Forwarded-Proto https;
70 proxy_set_header X-Forwarded-Port $server_port;
71 #proxy_set_header X-Forwarded-Port 8888;
72
73 #absolute_redirect off;
74 client_max_body_size 200m;
75 proxy_read_timeout 300;
76 }
77
78 location /v1/ {
79 proxy_pass http://cloudpivot/api/v1/;
80 #proxy_set_header Host $host:$server_port;
81 proxy_set_header X-Real-IP $remote_addr;
82 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
83 proxy_set_header X-Forwarded-Proto $scheme;
84 proxy_set_header X-Forwarded-Port $server_port;
85 #absolute_redirect off;
86 client_max_body_size 200m;
87 proxy_read_timeout 300;
88 }
89
90 location /dashboard/ {
91 proxy_pass http://report_dashboard/;
92 #proxy_set_header Host $host:$server_port;
93 proxy_set_header X-Real-IP $remote_addr;
94 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
95 proxy_set_header X-Forwarded-Proto $scheme;
96 proxy_set_header X-Forwarded-Port $server_port;
97 #absolute_redirect off;
98 client_max_body_size 200m;
99 proxy_read_timeout 300;
100 }
101
102 location /data-source/ {
103 proxy_pass http://report_datasource/;
104 #proxy_set_header Host $host:$server_port;
105 proxy_set_header X-Real-IP $remote_addr;
106 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
107 proxy_set_header X-Forwarded-Proto $scheme;
108 proxy_set_header X-Forwarded-Port $server_port;
109 #absolute_redirect off;
110 client_max_body_size 200m;
111 proxy_read_timeout 300;
112 }
113}
在/etc/nginx/conf.d/目录下添加报表代理配置文件
新增/etc/nginx/conf.d/report.conf配置文件,配置内容如下
注意:云枢6.12.X及以上(对应报表版本5.X及以上)不需要此配置,走内部调用即可 以下配置适用于6.12.X以下(对应报表5.X以下)版本
xxxxxxxxxx
721#对应的云枢服务配置信息 多节点负载均衡模式可自行调整
2upstream proxy_cloudpivot {
3 least_conn;
4 server 127.0.0.1:8080;
5}
6upstream proxy_report_dashboard {
7 least_conn;
8 server 127.0.0.1:6061;
9}
10upstream proxy_report_datasource {
11 least_conn;
12 server 127.0.0.1:6063;
13}
14server {
15 listen 8888 default_server;
16 listen [::]:8888 default_server;
17 server_name _;
18 server_tokens off;
19
20 location ^~ /api/ {
21 proxy_pass http://proxy_cloudpivot;
22 #proxy_set_header Host $host:$server_port;
23 proxy_set_header X-Real-IP $remote_addr;
24 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
25
26 #可将下面两个配置为固定值: 对应入口层协议和端口 (适用于: nginx外层还有proxy并与当前scheme, server_port不一致的情况)
27 proxy_set_header X-Forwarded-Proto $scheme;
28 #proxy_set_header X-Forwarded-Proto https;
29 proxy_set_header X-Forwarded-Port $server_port;
30 #proxy_set_header X-Forwarded-Port 8888;
31
32 #absolute_redirect off;
33 client_max_body_size 200m;
34 proxy_read_timeout 300;
35 }
36
37 location /v1/ {
38 proxy_pass http://proxy_cloudpivot/api/v1/;
39 #proxy_set_header Host $host:$server_port;
40 proxy_set_header X-Real-IP $remote_addr;
41 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
42 proxy_set_header X-Forwarded-Proto $scheme;
43 proxy_set_header X-Forwarded-Port $server_port;
44 #absolute_redirect off;
45 client_max_body_size 200m;
46 proxy_read_timeout 300;
47 }
48
49 location /dashboard/ {
50 proxy_pass http://proxy_report_dashboard/;
51 #proxy_set_header Host $host:$server_port;
52 proxy_set_header X-Real-IP $remote_addr;
53 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
54 proxy_set_header X-Forwarded-Proto $scheme;
55 proxy_set_header X-Forwarded-Port $server_port;
56 #absolute_redirect off;
57 client_max_body_size 200m;
58 proxy_read_timeout 300;
59 }
60
61 location /data-source/ {
62 proxy_pass http://proxy_report_datasource/;
63 #proxy_set_header Host $host:$server_port;
64 proxy_set_header X-Real-IP $remote_addr;
65 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
66 proxy_set_header X-Forwarded-Proto $scheme;
67 proxy_set_header X-Forwarded-Port $server_port;
68 #absolute_redirect off;
69 client_max_body_size 200m;
70 proxy_read_timeout 300;
71 }
72}
修改对应的配置文件并重启服务
使用命令
vim /data/cloudpivot/program/backEnd/webapi/application-prod.yml
修改配置文件 主要修改内容如下,其他配置请参考云枢开发者手册报表配置:主要是thirdDatasourceUrl属性
xxxxxxxxxx
81cloudpivot
2report
3#datasourceurl: http://127.0.0.1:6060 #报表integrate-webapi项目的访问地址,如果是同服务器部署并且报表使用默认的6060端口 可直接使用http://127.0.0.1:6060
4supportoralce true #是否支持oracle 报表后台版本20200318-2.3.0.4 以后默认打开
5# 注意:5.X及以上版本配置报表地址即可
6thirdDatasourceUrl http //127.0.0.1 6061 #报表自定义sql服务器接口地址
7# 注意:5.X以下版本配置NGINX代理后的报表地址
8#thirdDatasourceUrl: http://127.0.0.1:8888 #报表自定义sql服务器接口地址
使用命令
vim /data/reporter-deploy/bin/report.config
修改配置文件 主要修改内容如下,其他配置请参考云枢开发者手册报表配置:主要是REPORTER_ADAPTOR_PORT<6.12.X以下>、REPORTER_ADAPTOR_HOST<6.12.X及以上>属性
xxxxxxxxxx
91# 注意:5.X及以上版本配置云枢地址即可
2REPORTER_ADAPTOR_HOST="http://127.0.0.1:8080/api/"
3
4# 注意:5.X以下版本配置NGINX代理后的云枢地址
5REPORTER_ADAPTOR_PORT=8888
6REPORTER_ADAPTOR_HOST="127.0.0.1"
7
8# 日志目录
9REPORTER_LOG_DIR=/data/reporter-deploy/applog
最后再重启重启所有服务即可
xxxxxxxxxx
11/data/cloudpivot/program/backEnd/deploy.sh webapi && cd /data/reporter-deploy/bin/ && ./setup.sh && ./shutdown.sh && ./startup.sh && systemctl restart nginx
xxxxxxxxxx
531echo '#!/bin/bash
2
3current_path=$(cd `dirname $0`; pwd)
4params=$1
5deploy_env=prod
6path_webapi=$current_path/webapi
7param_modules=(${params//,/ })
8modules=( clean webapi )
9
10function init()
11{
12 echo "$params"
13 echo "$deploy_env"
14 return 0
15}
16
17function clean()
18{
19 [ -L "/etc/init.d/webapi" ] && rm -f /etc/init.d/webapi
20 return 0
21}
22
23function webapi()
24{
25 local deploy=$1
26 [ -L "/etc/init.d/webapi" ] && [ -n "`ls ${path_webapi}/*api*.jar`" ] && /etc/init.d/webapi stop
27 [ `ls ${path_webapi}/*api*.jar |wc -l` -gt 1 ] && echo "Only one jar package can exist in this path ${path_webapi}" && exit 1
28 [ ! -L "/etc/init.d/webapi" ] && ln -s ${path_webapi}/*web-api-*.jar /etc/init.d/webapi
29 local apiPID=`ps -ef |grep web-api |grep -v grep |awk '"'"{print \$2}"'"'`
30 [ -n "$apiPID" ] && kill -9 $apiPID
31 export JAVA_OPTS="-Xms4g -Xmx8g -Xss512k -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=32m ${skywalking_server} -Dloader.path=${path_webapi}/extensions/,${path_webapi}/extensions/common/"
32 /etc/init.d/webapi start -server --spring.profiles.active=${deploy}
33 return 0
34}
35
36function main()
37{
38 init
39 #args1 is modules,args2 is deploy
40 for i in "${modules[@]}"
41 do
42 for j in "${param_modules[@]}"
43 do
44 if [[ "$j" =~ "$i" ]] ;then
45 $i $deploy_env
46 [ $? -ne 0 ] && echo "$i return value is $?" && exit 1
47 fi
48 done
49 done
50 return 0
51}
52main $@
53exit $?' > /data/cloudpivot/program/backEnd/deploy.sh
此插件是收费插件可自行联系I Doc View厂家进行购买,我们也可以代采。官方链接 I Doc View在线文档预览
常规安装请参考idocv官方文档,此配置只是针对云枢以及常见的参数进行配置,只具有参考性如需任何技术支持或更详细的配置请联系官方。
修改用户名或者密码
对应路径 D:\idocv\db\mongodb_x.x\db_init.js 文件下的 db.user.save
内容
修改预览文件大小
双击 D:\idocv\setting.bat 修改 upload.max.size
参数值为 1073741824
(1G)
配置自动清理规则
双击 D:\idocv\setting.bat 修改 data.auto.cleanup.switch
参数值为 true
配置域名白名单
双击 D:\idocv\setting.bat 修改 url.view.allow.domains
参数值为你的域名 例如lsir.vip
去掉预览界面LOGO
删除 D:\idocv\docview\WEB-INF\views\footer.jsp 此文件下的内容即可
设置允许的文件类型
双击 D:\idocv\setting.bat 修改 filetype.upload
和filetype.view
参数值为你的文件名后缀,例如doc,docx,wps,xls,xlsx,csv,ppt,pptx,pdf,txt,jpg,jpeg,png
配置HTTPS访问
删除 D:\idocv\server\apache_x.x.x\conf\httpd.conf 文件下的 LoadModule ssl_module modules/mod_ssl.so
内容前的“#”号注释
在 D:\idocv\server\apache_x.x.x\conf 目录下创建ssl目录并将apache格式的证书放入此目录,建议证书命名为 server.key (私钥)和 server.crt (公钥)
打开文件 D:\idocv\server\apache_x.x.x\conf\extra\httpd-vhosts.conf 找到这行代码 <VirtualHost *:80>
并修改为以下内容即可
xxxxxxxxxx
61Listen 443
2<VirtualHost *:443>
3 SSLEngine on
4 SSLCertificateKeyFile "${SRVROOT}/conf/ssl/server.key"
5 SSLCertificateFile "${SRVROOT}/conf/ssl/server.crt"
6 #SSLCertificateChainFile "${SRVROOT}/conf/ssl/server_chain.crt"
管理员运行 start.bat 脚本并访问进行测试
此教程以三主三从为背景,教程中涉及到的Redis版本和IP以及密码等可自行修改。
1191
2
3# 定义变量
4REDIS_PASSWORD="Authine!2025"
5IP_ADDRESS=$(hostname -I | awk '{print $1}')
6CLUSTER_PORT=7000
7CLUSTER_BUS_PORT=17000
8REDIS_CONF_DIR="/etc/redis"
9REDIS_DATA_DIR="/etc/redis/data"
10CLUSTER_NODES=6
11REDIS_VERSION="7.4.3"
12
13apt update -y
14apt install -y build-essential tcl curl pkg-config
15
16cd /tmp
17curl -O http://download.redis.io/releases/redis-${REDIS_VERSION}.tar.gz
18tar xzvf redis-${REDIS_VERSION}.tar.gz
19cd redis-${REDIS_VERSION}
20make && make install
21
22mkdir -p ${REDIS_CONF_DIR}
23mkdir -p ${REDIS_DATA_DIR}
24
25REDIS_CONF_TEMPLATE="${REDIS_CONF_DIR}/redis.conf"
26
27cat > $REDIS_CONF_TEMPLATE <<EOF
28port ${CLUSTER_PORT}
29bind ${IP_ADDRESS}
30cluster-enabled yes
31cluster-config-file nodes-${CLUSTER_PORT}.conf
32cluster-node-timeout 5000
33appendonly yes
34dir ${REDIS_DATA_DIR}
35logfile ${REDIS_DATA_DIR}/${CLUSTER_PORT}.log
36protected-mode no
37requirepass ${REDIS_PASSWORD}
38masterauth ${REDIS_PASSWORD}
39daemonize yes
40cluster-announce-ip ${IP_ADDRESS}
41cluster-announce-port ${CLUSTER_PORT}
42cluster-announce-bus-port ${CLUSTER_BUS_PORT}
43EOF
44
45for i in $(seq 0 $((CLUSTER_NODES-1)))
46do
47 INSTANCE_PORT=$((CLUSTER_PORT + i))
48 INSTANCE_BUS_PORT=$((CLUSTER_BUS_PORT + i))
49 INSTANCE_DATA_DIR="${REDIS_DATA_DIR}/instance_${INSTANCE_PORT}"
50
51 mkdir -p ${INSTANCE_DATA_DIR}
52 cp $REDIS_CONF_TEMPLATE ${INSTANCE_DATA_DIR}/redis.conf
53 sed -i "s#port ${CLUSTER_PORT}#port ${INSTANCE_PORT}#g" ${INSTANCE_DATA_DIR}/redis.conf
54 sed -i "s#cluster-config-file nodes-${CLUSTER_PORT}.conf#cluster-config-file nodes-${INSTANCE_PORT}.conf#g" ${INSTANCE_DATA_DIR}/redis.conf
55 sed -i "s#dir ${REDIS_DATA_DIR}#dir ${INSTANCE_DATA_DIR}#g" ${INSTANCE_DATA_DIR}/redis.conf
56 sed -i "s#logfile ${REDIS_DATA_DIR}/${CLUSTER_PORT}.log#logfile ${INSTANCE_DATA_DIR}/${INSTANCE_PORT}.log#g" ${INSTANCE_DATA_DIR}/redis.conf
57 sed -i "s#cluster-announce-port ${CLUSTER_PORT}#cluster-announce-port ${INSTANCE_PORT}#g" ${INSTANCE_DATA_DIR}/redis.conf
58 sed -i "s#cluster-announce-bus-port ${CLUSTER_BUS_PORT}#cluster-announce-bus-port ${INSTANCE_BUS_PORT}#g" ${INSTANCE_DATA_DIR}/redis.conf
59 cat > /etc/systemd/system/redis_${INSTANCE_PORT}.service <<EOF
60[Unit]
61Description=Redis Instance on port ${INSTANCE_PORT}
62After=network.target
63PartOf=redis-cluster.service
64
65[Service]
66Type=forking
67ExecStart=/usr/local/bin/redis-server ${INSTANCE_DATA_DIR}/redis.conf
68ExecStop=/usr/local/bin/redis-cli -h ${IP_ADDRESS} -p ${INSTANCE_PORT} -a ${REDIS_PASSWORD} shutdown
69Restart=always
70User=root
71LimitNOFILE=100000
72
73[Install]
74WantedBy=multi-user.target
75EOF
76
77systemctl daemon-reload
78systemctl enable redis_${INSTANCE_PORT}.service
79systemctl start redis_${INSTANCE_PORT}.service
80done
81
82sleep 5
83
84NODES=""
85for i in $(seq 0 $((CLUSTER_NODES-1)))
86do
87 INSTANCE_PORT=$((CLUSTER_PORT + i))
88 NODES="${NODES} ${IP_ADDRESS}:${INSTANCE_PORT}"
89done
90
91/usr/local/bin/redis-cli --cluster create $NODES --cluster-replicas 1 -a ${REDIS_PASSWORD} --cluster-yes
92
93cat > /etc/systemd/system/redis-cluster.service <<EOF
94[Unit]
95Description=Redis Cluster Controller Service
96After=network.target
97Wants=$(for i in $(seq 0 $((CLUSTER_NODES-1))); do INSTANCE_PORT=$((CLUSTER_PORT + i)); echo -n "redis_${INSTANCE_PORT}.service "; done)
98
99[Service]
100Type=oneshot
101RemainAfterExit=true
102ExecStart=/bin/true
103ExecStop=/bin/true
104
105[Install]
106WantedBy=multi-user.target
107EOF
108
109systemctl daemon-reload
110systemctl enable redis-cluster.service
111
112# 输出常用运维命令
113echo "常用运维命令:"
114echo "1. 启动单个 Redis 实例: systemctl start redis_<port>.service"
115echo "2. 停止单个 Redis 实例: systemctl stop redis_<port>.service"
116echo "3. 启动 Redis 集群管理服务: systemctl start redis-cluster.service"
117echo "4. 停止 Redis 集群管理服务: systemctl stop redis-cluster.service"
118
119echo "Redis 集群搭建完成,并且 redis-cluster 服务可以一键管理"