跳至主要內容

物联网系统部署

fastbee2024年9月27日大约 2 分钟

提示

项目是前后端分离的,需要前端和后端分别部署


一、后端部署

  1. fastbee\springboot\bin 目录下执行package.bat 打包成Web工程,生成war/jar包文件。
# 生成包目录
fastbee\springboot\fastbee-admin\target
  1. jar部署方式:
# 使用命令行执行
java –jar fastbee-admin.jar
  1. war部署方式:
# 修改fastbee\springboot\fastbee-admin\pom.xml 文件中的packaging为war,打包后放到tomcat服务器webapps
<packaging>war</packaging>

二、前端打包

  1. 修改根目录的 .env.production 文件,mqtt消息服务器地址使用ws协议对应8083端口,使用wss协议建议配置代理访问8083端口。
# EMQX接口账号(后端地址和EMQX接口地址,通过nginx配置代理)
VUE_APP_EMQX_API_USER_NAME = 'admin'
VUE_APP_EMQX_API_PASSWORD = 'public'

# EMQX消息服务器连接地址
VUE_APP_EMQX_SERVER_URL = 'ws://localhost:8083/mqtt'

# 百度地图AK
VUE_APP_BAI_DU_AK = 'nAtaBg9FYzav6c8P9rF9qzsXXXXXX'
  1. 运行命令,打包应用
# 打包正式环境
npm run build:prod

打包前请确保安装依赖包,打包成功之后,会在根目录生成 dist 文件夹,里面就是构建打包好的文件,通常是 .js 、.css、index.html 等静态文件。


三、Nginx配置部署前端

前端打包后,dist目录里面文件上传的路径配置: /var/data/vue 。后端部署的地址: http://localhost:8080/ 端口默认8080 。全部配置如下:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    client_max_body_size 10m;

    gzip on;
    gzip_min_length  1k;
    gzip_buffers     16 64K;
    gzip_http_version 1.1;
    gzip_comp_level 5;
    gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
    gzip_vary on;
    gzip_proxied   expired no-cache no-store private auth;
    gzip_disable   "MSIE [1-6]\.";

    # Http跳转Https
    # server {
    #     listen 80;
    #     server_name localhost;
    #     location / {
    #         rewrite ^(.*) https://$server_name$1 permanent;
    #     }
    # }

    server {
        listen      80;

        # SSL 默认访问端口号为443
        # listen 443 ssl;
        server_name  localhost;
        charset utf-8;

        # 证书文件的路径
        # ssl_certificate /usr/share/nginx/ssl/fastbee.crt;
        # 私钥文件的路径
        # ssl_certificate_key /usr/share/nginx/ssl/fastbee.key;
        # ssl_session_timeout 10m;
        # 请按照以下协议配置       
        # ssl_protocols TLSv1.2 TLSv1.3; 
        # 请按照以下套件配置,配置加密套件,写法遵循openssl 标准       
        # ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        # ssl_prefer_server_ciphers on;

        # 前端
        location / {
            root   /usr/share/nginx/html;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }		
        # 后端接口
        location /prod-api/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://localhost:8080/;
        }

        # wss连接代理到ws
        location /mqtt {
            proxy_pass http://localhost:8083/mqtt;
            proxy_read_timeout 60s;
            proxy_set_header Host $host;
            proxy_set_header X-Real_IP $remote_addr;
            proxy_set_header X-Forwarded-for $remote_addr;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'Upgrade';
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

提示

更多部署资料参考若依系统文档