Linux云服务器部署分离式前后端SpringBoot项目流程,以及遇到的一些问题

目录

进行项目部署的一些默认条件

一,后端项目打包与上传

二,后端项目部署

三,前端项目打包与上传

四,前端项目部署

第一处

第二处

第三处

第四处

总结与反思

写在最后


第一次在linux云服务器上部署项目,经过非常坎坷的摸索之后终于部署完成了

进行项目部署的一些默认条件

默认你有一台linux操作系统的云服务器,博客中演示的linux的发行版本是centos7

其次博客中部署的是gitee上的SpringBoot项目,后端打包完的格式是zip格式,默认你也是

博客中前端的部署是使用的nginx

最后使用finalshell作为远程连接工具,有很多优点就不再细说,默认已经连接上了

一,后端项目打包与上传

先在maven中进行clean与install

然后找到target目录,将打包好的项目准备好

ea35120b22484485a7cf14c386d31fc9.png

然后在服务器上选择好位置

使用cd指令切到该目录下

cd 路径

使用mkdir指令创建空文件夹

mkdir 文件夹名称

8b7ab21f2f22463d9e121e332d365676.png

 我这里路径是usr/local新建了iot-parent文件夹

将打包好的项目上传到空文件夹

二,后端项目部署

因为我的项目部署使用的是zip格式的,所以进行要进行解压缩

cd切到这个目录下,使用unzip指令进行解压

unzip 文件名

如果你的项目打包完不是zip,或者不以zip格式的文件部署

我默认你也是使用的开源项目,在项目部署的具体方式上,可以去项目的git上看一看,一般redme文件中都有讲

68695184899c4a5dad501f4d8ceb8ddd.png

解压完成,压缩包先留着,后续项目有问题还可以进行重置

可以去config文件夹下的application.yaml文件(或者springboot项目的其他格式配置文件),对监听端口进行设置,我这边使用的是8083端口

一般情况下,除了后端的接口,还会有数据库的接口

你可以查看端口是否被占用

lsof -i :端口号

 然后如果被占用了可以根据列出的信息看一看是否重要

如果不重要可以通过kill指令结束进程

kill 程序pid

 也可以看看都哪些端口被占用了

netstat -tuln

 换个没有被占用端口

经过一番操作,现在已经设置好后端和数据库的端口,然后还要把前端使用的端口确定下来,然后记下来,去云服务器的防火墙上开放端口

然后启动后端的项目

de100ddeab3a490c80404e49e4db2b9d.png

按照你的项目的启动方式来就行,我这边是使用start.sh

sh 文件名

 7eb4757e8fb845649d9449d191a44749.png

有时候也会因为之前的项目没有关干净,导致端口占用启动不了,还是按照之前的指令给解除占用就行

ebbf3e96cc8d453c85de763af652c549.png

然后就启动成功了

三,前端项目打包与上传

 如果你没有安装nginx,可以跳转我朋友的这篇

nginx一键部署

使用的是一键部署,很方便,适合小白

前端项目我也默认你是使用的开源项目,所以项目里一般都有写如何打包

打包完成后你会得到一个dist文件夹

af1197eae142495cabc2786ae9358e05.png

在服务器上选好路径,把文件夹上传上去就行

然后记住这个路径,后边要用

四,前端项目部署

找到安装的nginx,conf文件夹下的nginx.conf

进行编辑

5cc488a4e73341edb08f0e6bb59e0c59.png

 打开

9a0a4c5bc15f4475b28c23e4f8ebf357.png

 这里边的要点也就这四个,为了方便演示,我给很多注释起来的设置去掉了

第一处

7f28c9cc54044f1a9807f2583198d1e2.png

把user后边改成root,代表root用户

第二处

16f3563132f54b5993252e1327b01d9c.png

map $http_upgrade $connection_upgrade {
           default upgrade;
           ''      close;
       }

直接在http下边加入这个就行,否则nginx重启的时候会报错

第三处

999eeae7e1774f64930b828bf0eb0509.png

listen后边的端口是访问前端的端口,记得服务器防火墙要开放

server_name后是服务器的ip地址

root后是前端的dist文件夹路径,因人而异,要从根目录开始

index后不用动就这样就可以

第四处

2f95996f25f44bb8bc2bbdfc9221c292.png

这一段是我从项目的gitee那里弄来的,你也可以去项目的gitee上看一看,然后画线的那里,ip就是后端服务器ip,端口就是后端的监听端口

这些全都搞完,保存然后项目部署就基本完成了

总结与反思

这次项目部署历时好几天

犯了不少错误,走了很多弯路

1,因为端口占用启动失败,没有去看日志文件的意识

最开始我是在自己电脑的虚拟机上尝试的部署,根据项目的gitee上的介绍用sh文件打开,但是一直启动不了,因为前几天刚学了点docker就使用了docker对项目进行了部署,当时好像也没什么问题

后来我的朋友跟我说不需要使用docker,用项目gitee上介绍的方式就行,一直启动不了是因为端口占用了,打印的日志在log文件中,没有去看,这也不够细致,要学会看日志文件

2.nginx重复安装导致端口占用,不知道如何解除占用

因为用的是学长的服务器,所以不知道已经安装过nginx了,所以又安装了一个nginx,因为端口占用,导致新的nginx启动不了,我试图把这原有的nginx关闭掉,查了端口,用kill指令结束进程,但是结束之后又会出现新的nginx进程(从pid不同得知),现在看来应该是没有关闭主进程导致的。后续即使是把原有的nginx的文件删了,进程也还是一直在运行,直到意外之中关闭了主进程,才解决这个问题

3,不理解nginx配置文件,看教程照猫画虎导致参数配置错误

在部署过程中,我在网上查了一些资料和博客,但是并没有弄明白nginx的conf文件中各个参数的含义,直接就根据自己的想法进行了配置,这是非常不严谨的

4,过于想当然

在对服务器进行防火墙端口放行设置的过程中,想当然的认为服务器内部进行访问的后端接口不需要放行,导致前端一直无法连接后端

5,不够了解服务器部署

在腾讯云的防火墙上放行过后端端口之后,前端依然无法访问后端,原因居然是宝塔面板还有一个防火墙,这也是因为我不够了解服务器部署

综上,对以上错误和不足进行反思

如果这篇文档对你有帮助,欢迎点赞收藏支持一下,如果有问题,也欢迎在评论区讨论,博主也会力所能及的帮助大家解决问题

写在最后

        感谢你能看到最后。虽然我加入小组也还没有一年,去年来的比较晚,但我也是学长了。去年学习的时候心里总是很浮躁,迷茫,我始终觉得小组是我的枷锁,牢牢地钉在我身上让我动弹不得,只能看着别人自由的模样,羡慕的不得了。天天学习也不怎么认真,博客也逐渐荒废了。

        但是近一段时间我的想法好像渐渐的变了,我开始跟在星火的大家打交道,开始感觉到大家每个人都是如此鲜活,虽然已经在小组呆了一个学期,但我感觉从前一段时间开始我才真正加入我们小组。我开始庆幸能够遇到大家,包括平级的友友们也包括高年级的学长学姐。

    同时我也成为了我们组的组长,我希望我能给我们组的同学做好榜样,就从现在开始,把博客捡起来

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要在服务器上部署Vue+SpringBoot前后端分离项目,需要进行以下步骤: 1. 创建服务器:选择合适的服务提供商(如阿里、腾讯、华为等),注册账号并登录控制台,在控制台上创建一台服务器。 2. 配置服务器:选择适合您项目需求的操作系统,通常推荐选择Linux系统(如CentOS、Ubuntu等),并进行基本的配置,如选择实例规格、设置登录密码或密钥等。 3. 登录服务器:使用SSH登录到您的服务器,可以使用SSH工具(如PuTTY、Xshell等)连接到服务器。 4. 安装Docker:在服务器上安装Docker,可以根据不同的操作系统选择相应的安装方式。您可以参考Docker官方文档或者服务提供商的文档来完成安装。 5. 构建Vue项目:在本地开发环境中使用Vue CLI创建Vue项目,并进行开发和测试。确保项目可以正常运行并且没有错误。 6. 构建SpringBoot项目:使用Spring Initializr创建SpringBoot项目,并进行开发和测试。确保项目可以正常运行并且没有错误。 7. 将前端项目:在本地执行构建命令,将Vue项目成静态文件。执行命令如下: ``` npm run build ``` 8. 将打后的文件上传至服务器:将打后的静态文件(通常在`dist`目录下)上传至服务器。您可以使用FTP工具(如FileZilla)进行文件上传,或者使用命令行工具(如scp)进行文件复制。 9. 创建Docker镜像:在服务器上创建一个Docker镜像,用于运行SpringBoot项目。在项目的根目录下创建一个`Dockerfile`文件,并在其中定义Docker镜像的构建步骤。示例`Dockerfile`如下: ``` FROM openjdk:8-jdk-alpine VOLUME /tmp ADD target/myproject.jar app.jar ENTRYPOINT ["java", "-jar", "/app.jar"] ``` 10. 构建Docker镜像:在服务器上执行以下命令,构建Docker镜像: ``` docker build -t myproject . ``` 11. 运行Docker容器:在服务器上执行以下命令,运行Docker容器: ``` docker run -d -p 80:8080 myproject ``` 12. 访问应用:通过浏览器访问服务器的公网IP地址,即可查看部署好的前后端分离项目。 请注意,以上步骤仅为概述,具体操作可能因您的项目需求、服务提供商等而有所不同。建议您参考相关文档或教程进行操作,并根据实际情况进行调整。祝您部署成功!如有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值