jetLinks

1、基础环境

  1. Jdk 1.8.0_2xx 注: 必须1.8
  2. Maven (可忽略)
  3. Node v12.x (可忽略)
  4. Npm v6.x (可忽略)
  5. Nginx
  6. Redis 5.x
  7. MySQL 5.7 +
  8. ElasticSearch 6.8 + 下载 Linux6.8.20 Windows6.8.20

2、部署

  1. 后台配置修改

    配置文件地址:jetlinks-standalone/src/main/resources/application.yml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 只涉及修改的地方
    spring:
    r2dbc:
    url: r2dbc:mysql://localhost:3306/jetlinks?ssl=false&serverZoneId=Asia/Shanghai # 修改了配置easyorm相关配置也要修改
    username: jetlinks # 数据库用户名
    password: jetlinks # 数据库密码
    easyorm:
    default-schema: jetlinks # 数据库名 修改了数据库请修改这里,mysql为数据库名
    dialect: mysql # 数据库方言,
  2. jetlinks-standalone/src/main/resources/logback-spring.xml 找到第二个appender标签修改fileNamePattern 这里为你log日志存放的地址,如果不修改运行时报找不到

    1
    2
    3
    4
    5
    6
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <!--定义文件滚动时的文件名的格式-->
    <fileNamePattern>/webApp/api/logs/iot.%d{yyyy-MM-dd.HH}.log
    </fileNamePattern>
    <maxHistory>30</maxHistory>
    </rollingPolicy>
  3. 打包上传

    将项目在本地打包上传

  4. 在服务器创建2里修改的日志地址

    注意需要修改目录所属用户及写入权限

  5. 启动 (到上传jar包的地址下)

    1
    java -jar ./jetlinks-standalone/target/jetlinks-standalone.jar
  6. 前端:安装依赖

    1
    npm install
  7. 打包

    1
    npm run-script build
  8. 将打好的包dist目录整个上传

  9. nginx普通部署

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    server {
    listen 80; #端口号
    #你的域名
    server_name "你的域名";

    gzip on;
    gzip_min_length 1k;
    gzip_comp_level 9;
    gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
    gzip_vary on;
    gzip_disable "MSIE [1-6]\.";

    root "实际dist目录";
    include /etc/nginx/mime.types;
    location / {
    try_files $uri $uri/ @router;
    index index.html;
    }

    location ^~/jetlinks/ {
    proxy_pass "后台服务器地址"; #修改此地址为后台服务地址
    proxy_set_header X-Forwarded-Proto $scheme;
    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_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_connect_timeout 1;
    proxy_buffering off;
    chunked_transfer_encoding off;
    proxy_cache off;
    proxy_send_timeout 30m;
    proxy_read_timeout 30m;
    client_max_body_size 100m;
    }
    }

3、Https安全

  1. 获取 SSL 安全证书

  2. 下载证书并上传至服务器

    这里默认下载 nginx 证书

  3. 安全部署代理转发

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
server {
#监听443端口
listen 443 ssl;
#你的域名
server_name "你的域名";
# ssl on;
#ssl证书的pem文件
ssl_certificate "pem证书路径"; # /xxx/xxx/xxxx.pem
#ssl证书的key文件路径
ssl_certificate_key "key路径"; # /xxx/xxx/xxxx.key
ssl_session_cache shared:SSL:1m;
#指定客户端可以重用会话参数的时间
ssl_session_timeout 5m;
#配置加密套件。为空字符串时,由openssl自行选择加密算法
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#为遵循安全规范,配置协议不支持SSLv3、SSLv2 、TLSv1
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
#依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000";

gzip on;
gzip_min_length 1k;
gzip_comp_level 9;
gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";

root "dist文件路径";
include /etc/nginx/mime.types;
location / {
try_files $uri $uri/ @router;
index index.html;
}

location ^~/jetlinks/ {
proxy_pass "后端地址"; #修改此地址为后台服务地址
proxy_set_header X-Forwarded-Proto $scheme;
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_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 1;
proxy_buffering off;
chunked_transfer_encoding off;
proxy_cache off;
proxy_send_timeout 30m;
proxy_read_timeout 30m;
client_max_body_size 100m;
}
}
# 自动跳转https
server {
listen 80;
listen [::]:80;
charset utf-8;
server_name "你的域名";
rewrite ^(.*)$ https://$host$1 permanent;
}