目录
进行项目部署的一些默认条件
一,后端项目打包与上传
二,后端项目部署
三,前端项目打包与上传
四,前端项目部署
第一处
第二处
第三处
第四处
总结与反思
写在最后
第一次在linux云服务器上部署项目,经过非常坎坷的摸索之后终于部署完成了
默认你有一台linux操作系统的云服务器,博客中演示的linux的发行版本是centos7
其次博客中部署的是gitee上的SpringBoot项目,后端打包完的格式是zip格式,默认你也是
博客中前端的部署是使用的nginx
最后使用finalshell作为远程连接工具,有很多优点就不再细说,默认已经连接上了
先在maven中进行clean与install
然后找到target目录,将打包好的项目准备好
然后在服务器上选择好位置
使用cd指令切到该目录下
cd 路径
使用mkdir指令创建空文件夹
mkdir 文件夹名称
我这里路径是usr/local新建了iot-parent文件夹
将打包好的项目上传到空文件夹
因为我的项目部署使用的是zip格式的,所以进行要进行解压缩
cd切到这个目录下,使用unzip指令进行解压
unzip 文件名
如果你的项目打包完不是zip,或者不以zip格式的文件部署
我默认你也是使用的开源项目,在项目部署的具体方式上,可以去项目的git上看一看,一般redme文件中都有讲
解压完成,压缩包先留着,后续项目有问题还可以进行重置
可以去config文件夹下的application.yaml文件(或者springboot项目的其他格式配置文件),对监听端口进行设置,我这边使用的是8083端口
一般情况下,除了后端的接口,还会有数据库的接口
你可以查看端口是否被占用
lsof -i :端口号
然后如果被占用了可以根据列出的信息看一看是否重要
如果不重要可以通过kill指令结束进程
kill 程序pid
也可以看看都哪些端口被占用了
netstat -tuln
换个没有被占用端口
经过一番操作,现在已经设置好后端和数据库的端口,然后还要把前端使用的端口确定下来,然后记下来,去云服务器的防火墙上开放端口
然后启动后端的项目
按照你的项目的启动方式来就行,我这边是使用start.sh
sh 文件名
有时候也会因为之前的项目没有关干净,导致端口占用启动不了,还是按照之前的指令给解除占用就行
然后就启动成功了
如果你没有安装nginx,可以跳转我朋友的这篇
nginx一键部署
使用的是一键部署,很方便,适合小白
前端项目我也默认你是使用的开源项目,所以项目里一般都有写如何打包
打包完成后你会得到一个dist文件夹
在服务器上选好路径,把文件夹上传上去就行
然后记住这个路径,后边要用
找到安装的nginx,conf文件夹下的nginx.conf
进行编辑
打开
这里边的要点也就这四个,为了方便演示,我给很多注释起来的设置去掉了
把user后边改成root,代表root用户
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
直接在http下边加入这个就行,否则nginx重启的时候会报错
listen后边的端口是访问前端的端口,记得服务器防火墙要开放
server_name后是服务器的ip地址
root后是前端的dist文件夹路径,因人而异,要从根目录开始
index后不用动就这样就可以
这一段是我从项目的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,不够了解服务器部署
在腾讯云的防火墙上放行过后端端口之后,前端依然无法访问后端,原因居然是宝塔面板还有一个防火墙,这也是因为我不够了解服务器部署
综上,对以上错误和不足进行反思
如果这篇文档对你有帮助,欢迎点赞收藏支持一下,如果有问题,也欢迎在评论区讨论,博主也会力所能及的帮助大家解决问题
感谢你能看到最后。虽然我加入小组也还没有一年,去年来的比较晚,但我也是学长了。去年学习的时候心里总是很浮躁,迷茫,我始终觉得小组是我的枷锁,牢牢地钉在我身上让我动弹不得,只能看着别人自由的模样,羡慕的不得了。天天学习也不怎么认真,博客也逐渐荒废了。
但是近一段时间我的想法好像渐渐的变了,我开始跟在星火的大家打交道,开始感觉到大家每个人都是如此鲜活,虽然已经在小组呆了一个学期,但我感觉从前一段时间开始我才真正加入我们小组。我开始庆幸能够遇到大家,包括平级的友友们也包括高年级的学长学姐。
同时我也成为了我们组的组长,我希望我能给我们组的同学做好榜样,就从现在开始,把博客捡起来