Springboot+vue项目部署所有遇到的坑

https://flowus.cn/siriusx/share/0a818075-372b-4948-88af-c75c1d10ceab项目地址及笔记
Spring Boot3+VUE3前后端分离项目基于Jwt的校验方案

环境搭建

安装jdk17

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

安装mysql server

https://ubuntu.com/server/docs/databases-mysql

将服务器root账号由系统验证改为密码验证,并修改可以访问的ip

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

将服务器mysql配置中的bind port改为0.0.0.0

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

使用telnet 43.142.101.58 3306检查连接

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本地安装mysql客户端进行连接mysql -u root -h 43.142.101.58 -p

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

连接成功,使用dbeaver连接测试

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

连接成功

总结一下,要配置远程连接,服务器mysql需要一个允许远程ip访问的账户,需要开放防火墙端口3306,需要修改mysql配置文件中的绑定地址。

接着在dbeaver中将需要用到的数据库全部复制到服务器上

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

安装nginx

遇到了一个有趣的问题,由于我先前在服务器上已经安装了apache并部署了wordpress,/var/www/index.html文件被替换成了apache默认页面,尽管nginx正确运行,但是始终没有看出来_

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

实际上现在nginx监听8081端口正常工作

打包部署

前端vue打包

运行npm run build

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

打包后生成dist文件夹

上传到服务器

后端文件打包

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

依次选择clean、compile、package

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

将jar包上传到服务器

sudo nohup java -jar backend-0.0.1-SNAPSHOT.jar &

后台运行

sudo tail -f nohup.out

输出运行日志

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
需要在服务器上安装rabbitmq

https://www.itbaima.cn/document

ubuntu@VM-16-13-ubuntu:~$ sudo rabbitmqctl set_user_tags yyt administrator
Setting tags for user “yyt” to [administrator] …

创建用户yyt 赋予管理员权限

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在这里插入图片描述

可以看到服务器的8080端口已经被占用,需要将先前运行的后台杀死后重新执行

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

正确运行结果

使用apipost后报错无法连接到redis,安装redis

此时再次测试,发现数据库报错,无法查询,发现配置文件中的密码没有更改成服务器的mysql密码

重新打包上传后测试,每次启动和杀死springboot进程非常不便,编写一个脚本start.sh:

#!/bin/bash# 启动应用程序
sudo nohup java -jar backend-0.0.1-SNAPSHOT.jar &# 查看输出日志
sudo tail -f nohup.out

chmod +x赋予执行权限

编写杀死已有springboot的脚本stop.sh:

#!/bin/bash# 查找占用8080端口的进程PID
pid=$(sudo lsof -t -i:8080)if [ -z "$pid" ]; thenecho "No process found on port 8080."
else# 杀死进程sudo kill -9 "$pid"echo "Process with PID $pid killed."
fi

再次测试,此时返回了正确的结果

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

此时后端配置完成,前端需要使用nginx代理

打开/etc/nginx下的nginx.conf配置文件,没有的话继续打开sitesavailable中的default配置文件

添加红框内容

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
上面的root 和index应该放在location括号外

访问后报错403,查看错误日志

2024/01/18 20:27:19 [error] 2252890#2252890: *1 open() "/usr/server/dist/index.html" failed (13: Permission denied), client: 23.158.104.247, server: _, request: "GET / HTTP/1.1", host: "43.142.101.58:8081"
2024/01/18 20:28:09 [error] 2252890#2252890: *1 open() "/usr/server/dist/index.html" failed (13: Permission denied), client: 23.158.104.247, server: _, request: "GET / HTTP/1.1", host: "43.142.101.58:8081"

发现是没有访问权限,将nginx.conf中的user改为root后成功可以访问。此时再开启后端

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
发现请求地址并没有加上服务器地址,在编写的vue中,最终请求的url为baseurl和url的拼接

axios.defaults.baseURL=“http://localhost:8080”

尝试将baseurl改成服务器地址,网页可以正常访问

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/413295.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity ComputeShader 使用GPU快速计算复杂问题

Unity ComputeShader 使用GPU快速计算复杂问题 前言项目创建ComputeShader编写CompturShader创建Unity代码场景布置运行场景 参考 前言 遇到一个问题,需要大量的计算,在Unity中直接写会长时间的阻塞主线程,正好使用ComputeShader让GPU来帮我…

webpack/vue-cli构建速度和打包体积优化

编译分析插件 webpack-bundle-analyzer webpack-bundle-analyzer可以生成代码分析报告,可以直观地分析打包出的文件有哪些,及它们的大小、占比情况、各文件 Gzipped 后的大小、模块包含关系、依赖项等 npm i -D webpackbar webpack-bundle-analyzer ja…

Intel Quartus II IP之DP1.4 工程的创建与使用

前述: Win10电脑安装了Quartus 21.4,这可以满足绝大多数工程,特别是对于简单调用fifo/ram等的工程,但是想要学习Quartus的HDMI/DP等高速接口类IP,首先需要创建HDMI/DP IP的设计demo工程,此时还需要安装Ecl…

数学建模--比赛

内容来自数学建模BOOM:【快速入门】北海:数模建模基础MATLAB入门论文写作数学模型与算法(推荐数模美赛国赛小白零基础必看教程)_哔哩哔哩_bilibili 目录 1.学习内容 2.参赛须知 1)参赛作品的组成 2)参赛作品的提交 3.软件安装 4.注意…

《Redis:NoSQL演进之路与Redis深度实践解析》

文章目录 关于NoSQL为什么引入NoSQL1、单机MySQL单机年代的数据库瓶颈 2、Memcached(缓存) MySQL 垂直拆分 (读写分离)3、分库分表水平拆分MySQL集群4、如今的网络架构5、总结 NoSQL的定义NoSQL的分类 Redis入门Redis能干嘛&…

【CSS】解决height = line-height 文字不垂直居中(偏上、偏下)的问题

解决办法1: 查看 font-family 属性,确认是否是因为字体而导致的不垂直居中问题。 其他小知识: 基线就是小写x字母的下边缘(线) 就是我们常说的 基线。line-height 属性设置的行高也就是定义的两行文字基线之间的距离! 参考文章:…

git仓库使用说明

Git软件使用 1.先下载git相关软件 下载地址: Git - Downloading Package (git-scm.com) 下载其中一个安装 2.打开gitee网站,注册账号 3.打开个人中心,选择ssh公钥,查看如何生成公钥 4.生成公钥后,添加相应的公钥 …

window11环境安装jdk17并配置环境变量

目录 一、下载地址二、安装步骤三、环境变量配置四、环境变量配置是否成功的测试 一、下载地址 https://www.oracle.com/java/technologies/downloads/#jdk17-windows 二、安装步骤 双击已下载的 jdk-17_windows-x64_bin.exe 安装包,点击【下一步】,…

【总结】Dinky学习笔记

概述 Dinky 是一个开箱即用、易扩展,以 Apache Flink 为基础,连接 OLAP 和数据湖等众多框架的一站式实时计算平台,致力于流批一体和湖仓一体的探索与实践 官网:Dinky 核心特性 沉浸式:提供专业的 DataStudio 功能&a…

NLP论文阅读记录 - 2021 | WOS 使用 GA-HC 和 PSO-HC 改进新闻文章的文本摘要

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试 二.相关工作三.本文方法3.1 总结为两阶段学习3.1.1 基础系统 3.2 重构文本摘要 四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结思考 前言 Improved Text Summa…

1125. 牛的旅行 (Floyd算法,最短路)

1125. 牛的旅行 - AcWing题库 农民John的农场里有很多牧区,有的路径连接一些特定的牧区。 一片所有连通的牧区称为一个牧场。 但是就目前而言,你能看到至少有两个牧区不连通。 现在,John想在农场里添加一条路径(注意&#xff…

开源28181协议视频平台搭建流程

最近项目中用到流媒体平台,java平台负责信令部分,c平台负责流媒体处理,找了评分比较好的开源项目 https://gitee.com/pan648540858/wvp-GB28181-pro 流媒体服务基于 c写的 https://github.com/ZLMediaKit/ZLMediaKit 说明文档:h…