部署VUE+SpringBoot+nginx项目

本文是前端是vite + element-plus

后端 springBoot

部署整个项目主要分为3个步骤,

1. 部署nginx,主要是配置nginx.conf   

2.打包前端代码   

3.打包后端代码

1.安装nginx

安装手顺:

linux安装nginx_linux安装nginx需要gcc还是gcc-c++-优快云博客

|

|

配置nginx.conf文件报错:

nginx: [emerg] unknown directive “ “ in /etc/nginx/conf.d/XXX.conf:122”

问题解决:“nginx: [emerg] unknown directive “ “ in /etc/nginx/conf.d/XXX.conf:122”_nginx: [emerg] unknown directive "passenger_root" -优快云博客

访问nginx出现403错误

https://blog.youkuaiyun.com/hzp666/article/details/136299416

2.部署前端应用

主要就是打包,然后把dist文件夹手动打个压缩包,扔到服务器上,然后把压缩包解压到 nginx.conf中配置的前端工程位置中,然后 重启下服务  nginx -s reload。

这里使用 pnpm 和 vite 打包

执行命令   pnpm run build 

报错:

1. >sdinopharm-dashboardao.0.0 build C: \doc\myProject\sinopharm-hr-schedule-frontend
> run-p type-check "build-only  @r” -
run-p’不是内部或外部命令,也不是可运行的程序
或批处理文件

解决方法:pnpm i

2. 部署后发现vue页面没有显示完全,

可能原因:element-plus没有打进包里

解决办法:引入element-plus

基于 Vite + Vue3 项目中三种引入 Element Plus 方式的对照说明-优快云博客

3. assert下图片没有显示

vue打包后assert的文件找不到, 报404

最简单的方法就是打包后,手动把图片放到dist 的 assert目录下:

4.页面找不到

打包命令换成

pnpm run build --base=/rank/

rank  是nginx 该项目路由的根目录

二、部署后端应用

在idea中,先clean 再package

打包好以后jar包会在,target 目录下:

项目打包:

springboot项目打包成jar_springboot打包成jar-优快云博客

linux下:
1查看当前jar的pid

ps -ef|grep jar包名


2.终止当前jar

kill -9 pid


 3、启动指定项目

nohup java -jar jar包名 --server.port=指定端口号  > 日志文件.log 2>&1 &


nohup 和 & 是保证后台运行不终止的意思,2>&1是将错误输出定位到左边的文件中

4. 如果要指定不同环境

4.1 需要在代码中配置2个 propeties,(一个生产环境,一个测试环境)

2个yml文件,修改为对应的数据库地址(一个生产库,一个测试库),以及两个环境在同一服务器的话,端口号不能一样。

4.2  在Linux 系统中部署,使用  --spring.profiles.active 参数来区分不同环境

nohup java -jar hr-dashboard-api-0.0.1-SNAPSHOT.jar --server.port=8082 --spring.profiles.active=prod  > pq_backend.log 2>&1 &

ps: 这里的参数值 只需要填 application-  后边的名字即可

报错:

1. maven-compiler-plugin报红,Plugin 'org.apache.maven.plugins:maven-compiler-plugin:3.8.1' not found

maven导入依赖报错的原因,极有可能是你通过maven下载这些依赖的时候网络发生错误,导致你本地的的文件并不完整,所以会报错,但是因为已经下载好了一部分,你这个时候刷新maven并不会重新下载,会一直使用该半成品文件,所以会一直报错。

        解决方法:为根据idea提示的报错路径在maven本地仓库中找到该文件,删除后刷新maven重新下载就可以了!
                        https://blog.youkuaiyun.com/Aiden_Jay/article/details/132227469

把下图中的包全部删掉

以上完工!

### 部署 Vue 和 Spring Boot 项目到阿里云服务器 #### 准备工作 为了成功部署 Vue 前端应用和 Spring Boot 后端服务至阿里云环境,需先完成如下准备工作: - 获取并配置好阿里云 ECS 实例。 - 安装必要的软件包如 Java 运行环境用于支持 Spring Boot 应用;Node.js 及其构建工具链来处理 Vue 项目打包。 #### 构建与上传应用程序文件 对于前端部分即 Vue 应用程序而言,在本地开发完成后应执行生产模式下的编译命令 `npm run build` 或者 `yarn build` 来生成静态资源文件夹 dist/[^1]。接着通过 FTP/SFTP 协议或者其他方式把该目录内的所有内容传输给目标服务器上的 Web 根路径下。 至于后端方面也就是 Spring Boot 工程,则建议采用 jar 形式的可执行 JAR 文件形式发布。可以利用 Maven 插件 maven-jar-plugin 或 Gradle 的 shadowJar task 打包整个工程为独立运行的应用程序,并将其放置于远程主机指定位置以便后续启动操作。 #### 设置 Nginx 作为反向代理服务器 安装 Nginx 并编辑站点配置文件以实现前后端分离架构中的路由转发逻辑。具体来说就是当请求匹配特定前缀时交由对应的后端微服务实例响应;而其他情况下则默认返回 index.html 页面从而允许单页面应用程序 (SPA) 正常运作。 ```nginx server { listen 80; server_name localhost; location /api/ { proxy_pass http://localhost:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location / { root html/dist; # vue app built files path try_files $uri $uri/ /index.html; } } ``` #### 自动化运维管理方案 考虑到实际应用场景可能涉及到频繁更新迭代以及多版本共存等问题,推荐引入 CI/CD 流水线机制配合 Docker 容器技术简化日常维护成本。借助 Jenkins、GitLab Runner 等持续集成平台能够自动化触发测试验证流程直至最终制品推送入库环节;与此同时 Kubernetes 编排引擎加上 Helm 包管理工具更是让集群级别的调度变得轻而易举。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值