提示:使用jar包和nginx部署
目录
前言
根据项目需要使用了若依分离版系统,二次开发完成后自己尝试实现部署,由于没有做过部署遇到了很多问题,因此记录一下成功部署的过程。
一、后端
后端部署主要通过jar包完成,打包过程如下。
1.修改pom打包方式为jar
<parent>
<artifactId>ruoyi</artifactId>
<groupId>com.ruoyi</groupId>
<version>3.8.5</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<artifactId>ruoyi-admin</artifactId>
2.生成jar包
使用package工具打包。
打包完成后在ruoyi-admin模块中生成了对应jar包。
二、前端
1.输入命令
在终端输入:npm run build:prod ,之后回车。
打包完成提示如图。
2.生成位置
左侧目录中生成打包后的文件夹,默认为dist。
三、部署运行
1.运行jar包
找到刚才后端jar包文件位置,在此目录打开cmd并输入java -jar ruoyi-admin.jar 运行此文件,成功启动后会出现提示成功字样。
2.部署前端
1.下载nginx
去官网下即可,此处使用版本为1.21.6
2.将dist放入nginx
dist放在nginx的html文件下,如图。
3.修改nginx配置
打开nginx–>conf中的nginx.conf文件,修改内容如下。
server {
listen 80;#与前端vue.config.js中const port设置的端口一致
server_name localhost;
location / {
root D:/nginx-1.21.6/html/dist; #前端打包后的dist文件存放位置
try_files $uri $uri/ /index.html?s=$uri&$args;
index index.html index.htm;
error_page 405 =200 http://$host$request_uri;
}
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/;#与后端application.yml中接口一致
}
其中,需要注意前端vue.config.js的两处配置端口,如图。
const port = process.env.port || process.env.npm_config_port || 80 // 端口,与上文listen端口一致
devServer: {
host: '0.0.0.0',
port: port,
open: true,
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
target: `http://localhost:8080`,//与服务器访问地址一致
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
}
}
},
disableHostCheck: true
},
4.运行nginx
双击nginx.exe文件运行,运行后输入网址即可成功。
注意:
1.验证码不显示的问题需要确认前后端访问接口、ip地址是否一致,即vue.config.js和ruoyi-admin的application.yml文件。
2.除此之外,考虑.env.production中的生产环境VUE_APP_BASE_API是否和nginx中配置一致(我之前出问题修改过此参数,因此不一致验证码一直不显示)
3.nginx使用管理员身份运行(不用管理员身份时会提示权限不够,不知道是否确实是这个原因,但我修改后不再提示了)
总结
以上就是今天要讲的内容,本文仅仅简单介绍了windows中部署若依系统分离版的方法,文中多有不足,希望可以给大家提供一些参考。