一、项目是前后端分离的,需要前端和后端单独部署。EMQX的安装参考 官方网站 ,配置参考上一章节的系统运行。


二、后端部署

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

三、前端部署

运行命令,打包应用

# 打包正式环境
npm run build:prod

# 打包预发布环境
npm run build:stage

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


四、Nginx配置

前端打包后,dist目录里面文件上传的路径配置: /var/wumei-smart/vue 。后端部署的地址: http://localhost:8080/ 端口默认8080 。EMQX安装的地址: http://localhost:8081/api/v4/ 端口默认8081。全部配置如下:

worker_processes  1;

events {
    worker_connections  1024;
}

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

    server {
        listen       80;
        server_name  localhost;
        charset utf-8;

        location / {
            root   /var/wumei-smart/vue;
            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/;
		}
        
        location /api/v4/ {
            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:8081/api/v4/;
        }

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

建议开启nginx的Gzip压缩,加快网页访问速度。配置如下:

# 开启gzip压缩
gzip on;
# 不压缩临界值,大于1K的才压缩,一般不用改
gzip_min_length 1k;
# 压缩缓冲区
gzip_buffers 16 64K;
# 压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_http_version 1.1;
# 压缩级别,1-10,数字越大压缩的越好,时间也越长
gzip_comp_level 5;
# 进行压缩的文件类型
gzip_types text/plain application/x-javascript text/css application/xml application/javascript;
# 跟Squid等缓存服务有关,on的话会在Header里增加"Vary: Accept-Encoding"
gzip_vary on;
# IE6对Gzip不怎么友好,不给它Gzip了
gzip_disable "MSIE [1-6]\.";

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