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

news2024/11/19 2:41:23

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" ]; then
  echo "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.coloradmin.cn/o/1396193.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c语言-结构体内存对齐

文章目录 前言一、结构体内存对齐总结 前言 本篇文章介绍结构体内存对齐。 一、结构体内存对齐 定义两个结构体: struct S1 {char c1;int i;char c2; };struct S2 {char c1;char c2;int i; }; //输出结构体大小 int main() {printf("%u\n", sizeof(st…

提升开发效率,Fiddler Everywhere for Mac助您解决网络调试难题

在现代软件开发中,网络调试是一个不可或缺的环节。无论是前端开发还是后端开发,我们经常需要对网络请求进行监控和调试,以便及时发现并解决问题。而Fiddler Everywhere for Mac作为一款强大的网络调试工具,能够帮助开发者提升工作…

【01】mapbox js api加载arcgis切片服务

需求: 第三方的mapbox js api加载arcgis切片服务,同时叠加在天地图上,天地图坐标系web墨卡托。 效果图: 形如这种地址去加载http://zjq2022.gis.com:8080/demo/loadmapboxtdt.html 思路: 需要制作一个和天地图比例…

视觉检测系统:工厂生产零部件的智能检测

在工厂的生产加工过程中,工业视觉检测系统被广泛应用,并且起着重要的作用。它能够对不同的零部件进行多功能的视觉检测,包括尺寸和外观的缺陷。随着制造业市场竞争越来越激烈,对产品质检效率的要求不断提高,传统的人工…

EMQX安装和Java使用

一、EMQX介绍 EMQX是大规模分布式MQTT消息服务器,可以高效可靠连接海量物联网设备,实时处理分发消息与事件流数据,助力构建关键业务的物联网与云应用。EMQX 作为物联网应用开发和物联网平台搭建必须用到的基础设施软件,主要在边缘…

田园好比一幅美丽的画

一望无垠的麦田,清新的空气,茂密的小树林,这一切都呈现在田园里。 清晨,东方刚刚泛起了鱼肚白,一切都雾蒙蒙的,仿佛给大地披上了一层薄薄的轻纱,大地在沉睡当中,小花沉静在美梦中&am…

ARM64汇编01 - 环境搭建

arm官方手册 由于市面上几乎没有arm相关书籍,所以推荐看官方文档。虽然是英文的,看不下去也要硬看,毕竟搞这方面的还是得有啃英文文档/书籍的能力。 另外,再推荐一个翻译网站:https://www.deepl.com/zh/translator …

git报错:Failed to connect to github.com port 443: Timed out

git提交报错 git报错:Failed to connect to github.com port 443: Timed out解决办法 使用ping github.com 发现ping不通修改hosts文件,让主机跳过DNS服务器 直接根据hosts配置信息进行替换域名在ipaddress.com查询Github真实IP地址 打开hosts文件 添加…

【Java SE】基础知识回顾——【13.线程 | 同步】

【线程 同步】 第一章 Thread 1.1 Thread类 /*** author 270* 获取线程的名称:* 1.使用Thread中的方法getName()* String getName() 返回该线程的名称* 2.可以获取到当前正在执行的线程,使用线程中的方法getName()获…

【年度TikTok电商数据解析】火遍全网!出单率超高!这个产品会成为2024年卖家新宠吗?

随着大众对口腔健康越来越重视,消费者对漱口水、牙线、口腔清新剂等口腔卫生产品形成深度依赖。 当然,这一趋势对于我们TikTok爆款商机打造息息相关。 然而,在目前的口腔护理赛道,高露洁、宝洁、飞利浦等巨头盘踞,掌握…

Spring重要知识点

一、Spring中相关概念 1.IOC 控制反转 IoC(Inverse of Control:控制反转)是⼀种设计思想,就是将原本在程序中⼿动创建对象的控制权,交由Spring框架来管理。IoC 在其他语⾔中也有应⽤,并⾮ Spring 所独有。 IoC 容器…

政务服务场景为何要打造AI交互数字人?

随着Chat GPT兴起,越来越多服务场景通过AI交互数字人以多模态交互形式实现人机交互。如近日昆山市档案馆推出了AI交互数字人“昆兰”,数字人设置于市档案馆一楼大厅入口处,市民可以与AI交互数字人进行实时问答交流,了解总书记关于…

使用 Docker 部署 的WAF: 雷池社区版

Web应用防火墙(WAF)是保护网站不受恶意攻击的关键组件。 使用 Docker 部署雷池社区版,可以大大简化安全管理工作。 一、WAF 雷池社区版简介 雷池社区版是一种流行的开源 Web 应用防火墙,它提供基本的安全保护,如防止…

【C++】:STL序列式容器list源码剖析

一、list概述 总的来说:环形双向链表 特点: 底层是使用链表实现的,支持双向顺序访问 在list中任何位置进行插入和删除的速度都很快 不支持随机访问,为了访问一个元素,必须遍历整个容器 与其他容器相比,额外…

小蓝和小桥的挑战*

题目 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int t sc.nextInt();sc.nextLine();while(t-- > 0) {int n sc.nextInt();sc.nextLine();int[] a new int[n];for(int i0;i<n;i)a[i…

【码银送书第十一期】《自然语言生成SQL与知识图谱问答实战》

语义解析技术可以提高人机交互的效率和准确性&#xff0c;在自然语言处理、数据分析、智能客服、智能家居等领域都有广泛的应用前景。特别是在大数据时代&#xff0c;语义解析能够帮助企业更快速地从大量的数据中获取有用的信息&#xff0c;从而提高决策效率。 01 语义解析的应…

34、StoHisNet:CNN+Transformer结合首次用于胃病理图像4分类[奔狼怎配质疑雄狮!]

本文由贵州大学医学院&#xff0c;贵州省人民医院医学影像教研室&#xff0c;精密影像诊疗国际示范合作基地&#xff0c;贵州大学计算机科学与技术学院&#xff0c;清华大学北京信息科学与技术国家研究中心&#xff0c;共同合作&#xff0c;于2022年5月28日发表于<Computer …

我的最爱,人类的未来

ATLAS (Boston Dynamics&#xff1a;波士顿动力公司) Atlas是由波士顿动力公司设计的一种跳跃式、后空翻类人机器人&#xff0c;它使用深度传感器进行实时感知&#xff0c;并使用模型预测控制技术来改善运动。Atlas 高 5 英尺&#xff0c;重 190 磅&#xff0c;拥有三台机载计算…

VBA窗体跟随活动单元格【简易版】(2/2)

上一篇博客&#xff08;文章连接如下&#xff09;中使用工作表事件Worksheet_SelectionChange实现了窗体跟随活动单元格的动态效果。 VBA窗体跟随活动单元格【简易版】(1/2) 为了在用户滚动工作表窗体之后仍能够实现跟随效果&#xff0c;需要使用Application.Windows(1).Visibl…

数据结构Java版(3)——队列Queue

一、概念 队列也是一种线性数据结构&#xff0c;最主要的特点是入队列顺序和出队列顺序是相同的&#xff0c;操作时在队尾入队&#xff0c;在队首出队。在Java中给我们提供了一个泛型队列——Queue&#xff0c;其中最常用的方法有&#xff1a; void offer()&#xff1a;入队E …