当前位置: 首页 > news >正文

服务器部署前后端项目-SQL Father为例

hello~大家好哇,好久没更新博客了。现在来更新一波hhh

现在更新一下部署上的一些东西,因为其实有很多小伙伴跟我之前一样,很多时候只是开发了,本地前后端都能调通,也能用,但是没有部署到服务器试过,包括其中nginx的转发等等,很多存在不理解的地方,这一期我主要打算来讲这一部分。可能讲的不是很详细,也可能存在忽略的新手视角的看法,所以如果有问题,可以不妨直接评论,我看到的话会回答的哈(及时性可能就没那么快了)~~

现在我就以sql-father为例,因为刚好最近在部署这个项目,其实之前我也部署过另外一个,叫若依,只不过没有写成文档的形式,且当时也比较懵懵懂懂,只是知道能完成就行了。

当然,这次也很感谢这位作者@lemon-giser,他写的博客其实很详细了,我也是在这个基础上进行更新(主要是想节省一些工作量hhh,具体参考的博客地址放在最下面了)。

1.项目地址

1.1 github

前端地址:https://github.com/liyupi/sql-father-frontend-public

后端地址:https://github.com/liyupi/sql-father-backend-public

1.2 gitee

前端地址:https://gitee.com/liyupi/sql-father-frontend-public

后端地址:https://gitee.com/liyupi/sql-father-backend-public

2.打包

首先这里要先配置好环境哦~这里我就不过多讲解了。一般我后端会用idea,前端会使用vscode。

这里需要先把包先git下来或者直接下载也是可以的

2.1 前端

前端打开后,先安装依赖,使用指令yarn install(如果提示没有yarn,先npm下载一下)

然后这里有个地方要修改下配置(改完后记得ctrl+s保存):

image-20230827233248917

然后就可以打包啦~~

使用指令yarn run build会生成一个dist文件夹。

这里先给它压缩一下,方便传到服务器,也可以不用hhh。

2.2 后端

后端的话我使用idea打开的。

这里也是需要改动一点东西的,因为如果不是在本地运行的话,在服务器启动会报错。

参考解决方案地址:https://github.com/liyupi/sql-father-backend-public/issues/28

image-20230827233718139

然后就是修改配置文件中的数据库地址啦

image-20230827233921656

这里记得改哦,因为要部署到线上环境,所以我就弄成prod了

image-20230827234007823

接下来就是开始打包(这里你得有maven)

然后双击install,就可以开始打包啦(如果部署到线上,有个test地址那里报错了,就把昨天test文件夹删了就可以)

image-20230827234126948

2.3 放置到服务器

打包好后的前后端:

image-20230827234425132

image-20230827234452752

然后就可以上传到服务器啦~~

3.安装环境配置

3.1 前端

运行前端需要Web容器,如tomcat、nginx等。这里用的nginx。

注意这里nginx的版本,我这里使用的是1.19.8,我当时用的1.21好像填写那个配置是会报错的,所以这里注意哈

nginx的安装教程很多,这里贴一个。https://juejin.cn/post/6844904144235413512

3.2 后端

运行后端需要Java环境。

Linux部署Java环境,网上教程也很多。https://blog.csdn.net/qq_43329216/article/details/118385502

注意:tar解压可能会丢文件,比如没有jre文件,我这里就遇到了,解决方法就是先在本地解压在上传到服务器,当然也有其他更好的办法。

准备数据库,参考上方第3步.

3.3 数据库

打开MySQL,运行项目提供的SQL语句。我这里用的HeidiSQL(使用navicat也可以)。

注意:这里mysql版本是5.7。似乎5.6.5版本以下不支持datetime类型,会失败。

还有就是如果字符提示超了,可以把那些varvhar(1024)和varvhar(512)的改小点,改成varchar(255),bitint改成int。(当然这只是我的解决方法hhh,根据错误去百度搜也有很多解决方案啦)

image-20230404175312159

在这一步可以直接连接到服务器的数据库,建表插数据。后端项目修改一下配置即可

4.部署

先把前后端包传上去哈~地址随便你定就好了。

注意如果你是云端的服务器,你这里要提前开放端口,比如这里监听的是888端口,就开这个就可以

首先就讲下后端的部署吧。

当然,如果有必要,我觉得可以指定地址去运行哈

  1. 命令 java -jar sql-father-backend-0.0.1-SNAPSHOT.jar
  2. 测试页面是否正常运行
  3. 停掉后端,改为热启动的方式运行。nohup java -jar sql-father-backend-0.0.1-SNAPSHOT.jar > out.log &

Linux nohup 命令详解 https://juejin.cn/post/7014115562595254285

前端部署:

nginx安装好后,就是改配置啦。由于我是用宝塔安装的nginx,有可视化界面,所以我就用可视化界面改啦

讲解:

listen是你的监听的端口(还记得前端打包填的地址吗)

server_name是你的服务器地址

还有就是localtion / 里面的root后面/www/wwwroot/sqlFather/sqlfather-frontend这里是我的前端包放置的位置哈

然后下面的location /api这个就不用动哈,如果你后端也是部署在本地,那这个localhost就不用动了

server
{listen 888;server_name 192.168.200.218;index index.html index.htm index.php;location / {root /www/wwwroot/sqlFather/sqlfather-frontend;index index.html index.htm;}location /api {proxy_pass http://localhost:8102/api;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Real-PORT $remote_port;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;proxy_cookie_path / /;proxy_set_header Cookie $http_cookie;proxy_cookie_flags ~ nosecure samesite=strict; }access_log  /www/wwwlogs/access.log;
}

然后就可以啦。

输入你的ip:888就可以访问前端啦。

结尾

至此项目就搭建完毕了,主要麻烦的地方在环境配置那块。环境搭好了,以后再部署项目非常快。

参考的博客:

Linux服务器部署前后端项目-SQL Father为例

nginx转发问题

登录失效问题

相关文章:

服务器部署前后端项目-SQL Father为例

hello~大家好哇,好久没更新博客了。现在来更新一波hhh 现在更新一下部署上的一些东西,因为其实有很多小伙伴跟我之前一样,很多时候只是开发了,本地前后端都能调通,也能用,但是没有部署到服务器试过&#x…...

LiveNVR监控流媒体Onvif/RTSP功能-支持语音对讲支持非国标摄像头SDK语音对讲GB28181级联国标平台非国标转国标语音对讲

LiveNVR支持语音对讲支持非国标摄像头SDK语音对讲GB28181级联国标平台非国标转国标语音对讲 1、确认摄像头是否支持对讲2、摄像头视频类型复合流3、通道配置SDK接入4、视频广场点击播放5、相关问题5.1、如何配置通道获取直播流?5.2、如何GB28181级联国标平台&#x…...

爬虫selenium获取元素定位方法总结(动态获取元素)

目录 元素 查看元素信息 元素定位 通过元素id定位 通过元素name定位 通过xpath表达式定位 绝对路径 相对路径 通过完整超链接定位 通过部分链接定位 通过标签定位 通过类名进行定位 通过css选择器进行定位 id选择器 class选择器 标签选择器 属性选择器 定位带…...

JVM下篇知识

第01章:概述篇 第02章:JVM监控及诊断工具-命令行篇 第03章:JVM监控及诊断工具-GUI篇 第04章:JVM运行时参数 第05章:分析GC日志...

HBase客户端的批量写缓存BufferedMutator

HBase数据刷写 之前提到过这个方法,那么BufferedMutator是什么?又应该如何实现呢? 写缓存 HBase的每一个put操作实际上是一个RPC操作,将客户端的数据传输到服务器再返回结果,这只适用于小数据量的操作,如…...

从多个角度详解map转为list

从多个角度详解map转为list 更新:2023-05-20 19:24 在Java编程中,我们经常使用map存储键值对数据,而有时我们需要把map转为list,本文将从多个方面对map转list做详细的阐述。 一、map转为list的基础方法 Java提供了多种方法将m…...

PHP用CURL发送Content-type为application/json的POST请求方法

HELLO 各位伙伴,最近一直在做项目,没有及时更新。望请见谅。 今天,给大家讲一下php请求第三方接口的时候遇到的问题,大家都知道,在请求第三方接口的时候,会要求我们用post还是get来传参 一般我们传参的时候…...

【程序猿书籍大放送:第二期】《强化学习:原理与Python实战》

🌹欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 爱书不爱输的程序猿:送书第二期 一、搞懂大模型的智能基因,RLHF系统设计关键问答1.RLHF是什么?2.RLHF适用于哪些任务?3…...

SV-6002Y 网络对讲求助模块,带3W功放输出和一路30W功放输出

SV-6002Y 网络对讲求助模块,带3W功放输出和一路30W功放输出 SV-6002Y是我司一款求助对讲模块,具有10/100M以太网接口,其接收网络的音频数据,实时解码播放,还可配置麦克风输入和扬声器输出。SV-6002Y可实现对讲、广播、…...

Nginx详解 二:配置文件部分

文章目录 1. Nginx 配置文件1.1 主配置文件1.2 子配置文件1.3 全局配置1.3.1 修改启动的进程数1.3.2 cpu和work进程绑定(nginx调优)1.3.3 修改PID路径1.3.4 nginx进程的优先级(work进程的优先级)1.3.5 调试work进程打开的文件的个…...

SMC_TRAFO_GantryCutter2 (FB) 带刀片旋向龙门

裁布机:刀片按XY走向,偏转刀片角度。 pi:目标位置矢量(x,y),插值器的输出 v:当前路径切线的矢量,插值器的输出 dOffsetX: x轴的附加偏移 dOffsetY&#xf…...

『PyQt5-Qt Designer篇』| 07 Qt Designer中栅格布局和表单布局的使用

07 Qt Designer中栅格布局和表格布局的使用 1 栅格布局1.1 按钮布局1.2 栅格布局中拖入控件1.3 保存并调用2 表单布局2.1 标签+输入控件2.2 保存并调用3 组合水平和垂直布局1 栅格布局 1.1 按钮布局 拖入几个按钮,如图: 选中所有按钮,右键点击布局-栅格布局: 之后可以看到…...

无涯教程-分类算法 - 多项式逻辑回归模型函数

Logistic逻辑回归的另一种有用形式是多项式Lo​​gistic回归,其中目标或因变量可以具有3种或更多可能的unordered类型,即没有定量意义的类型。 用Python实现 现在,无涯教程将在Python中实现上述多项式逻辑回归的概念。为此,使用…...

【C++】开源:Box2D动力学库配置与使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍Box2D动力学库配置与使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&#xff0c…...

Druid连接池和Apache的DBUtils

背景 jdbc连接数据库存在着大批量用户进行短时间的SQL连接操作的 需求,而普通用户连接后直接断开与数据库的连接,下次连接需要重新建立桥梁,再频繁访问时。这是很消耗性能的一个操作,因此诞生了数据库连接池技术。提前创建 一些连…...

怎样快速选择正确的可视化图表?

数据可视化的图表类型十分丰富,好的图表可以有效、清晰地呈现数据的信息。对于用户而言,选择正确的图表是十分关键的,不仅可以达到“一图胜千言”的效果,而且会直接影响分析的结果。 用户选择正确的数据可视化图表前,…...

6路液体水位检测芯片VK36W6D SOP16 抗电源干扰及手机干扰特性好

产品品牌:永嘉微电/VINKA 产品型号:VK36W6D 封装形式:SOP16/QFN16L 详细资料:13.5/5.474/4.703 概述 VK36W6D具有6个触摸检测通道,可用来检测6个点的水位。该芯片具有较高的集成度,仅需极少的外部组件便…...

【设备树笔记整理6】中断系统中的设备树

1 中断概念的引入与处理流程 1.1 中断处理框图 1.2 中断程序的使用 主函数() while(1) {do_routine_task(); }中断处理函数() {handle_interrupt_task(); }如何调用中断处理函数? 1.3 ARM对异常(中断)的处理过程 (1)初始化 ① 设置中断…...

微信小程序下载后端返回的文件流

downtest() {let temp {"title": ["排名", "车号", "车队", "车手", "领航", "赛段成绩", "距首车成绩", "距前车差距", "发车时间", "冲刺时间", "赛段…...

Autoware.universe部署04:universe传感器ROS2驱动

文章目录 一、激光雷达驱动二、IMU驱动2.1 上位机配置4.2 IMU校准4.3 安装ROS驱动 三、CAN驱动四、相机驱动4.1 安装驱动4.2 修改相机参数 五、GNSS驱动 本文介绍了 Autoware.universe 各个传感器ROS2驱动,本系列其他文章: Autoware.universe部署01&…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...