首页 > 系统相关 >linux云服务器部署springboot项目

linux云服务器部署springboot项目

时间:2023-11-20 19:32:35浏览次数:42  
标签:springboot 项目 部署 端口 nginx 文件夹 linux 服务器


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

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

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

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

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

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

一,后端项目打包与上传

先在maven中进行clean与install

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

linux云服务器部署springboot项目_项目部署

linux云服务器部署springboot项目_服务器_02编辑

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

使用cd指令切到该目录下

cd 路径

使用mkdir指令创建空文件夹

mkdir 文件夹名称

linux云服务器部署springboot项目_项目部署_03

linux云服务器部署springboot项目_nginx_04编辑

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

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

二,后端项目部署

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

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

unzip 文件名

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

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

linux云服务器部署springboot项目_项目部署_05

linux云服务器部署springboot项目_项目部署_06编辑

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

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

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

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

lsof -i :端口号

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

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

kill 程序pid

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

netstat -tuln

 换个没有被占用端口

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

然后启动后端的项目

linux云服务器部署springboot项目_nginx_07

linux云服务器部署springboot项目_nginx_08编辑

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

sh 文件名

linux云服务器部署springboot项目_服务器_09

linux云服务器部署springboot项目_项目部署_10编辑

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

linux云服务器部署springboot项目_服务器_11

linux云服务器部署springboot项目_服务器_12编辑

然后就启动成功了

三,前端项目打包与上传

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

nginx一键部署

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

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

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

linux云服务器部署springboot项目_服务器_13

linux云服务器部署springboot项目_nginx_14编辑

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

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

四,前端项目部署

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

进行编辑

linux云服务器部署springboot项目_服务器_15

linux云服务器部署springboot项目_服务器_16编辑

 打开

linux云服务器部署springboot项目_服务器_17

linux云服务器部署springboot项目_服务器_18编辑

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

第一处

linux云服务器部署springboot项目_nginx_19

linux云服务器部署springboot项目_项目部署_20编辑

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

第二处

linux云服务器部署springboot项目_服务器_21

linux云服务器部署springboot项目_服务器_22编辑

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

linux云服务器部署springboot项目_服务器_23

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

第三处

linux云服务器部署springboot项目_nginx_24

linux云服务器部署springboot项目_项目部署_25编辑

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

server_name后是服务器的ip地址

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

index后不用动就这样就可以

第四处

linux云服务器部署springboot项目_服务器_26

linux云服务器部署springboot项目_服务器_27编辑

这一段是我从项目的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,不够了解服务器部署

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

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

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

写在最后

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

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

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


标签:springboot,项目,部署,端口,nginx,文件夹,linux,服务器
From: https://blog.51cto.com/u_16360983/8491233

相关文章

  • 20231119 mac 使用dd 命令 烧写 linux img到sd卡
    https://docs.radxa.com/rock5/official-images?model=ROCK+5B下载rock5b官方操作系统文件是一个.img.xz文件打开一个mac终端,ls/dev关注/dev/disk相关的,插入SD卡读卡器到macmini,再次ls/dev 把sd卡格式化sudoddif=/dev/zeroof=/dev/disk4bs=64Mcoun......
  • 使用Vmware虚拟机装载Linux系统如何联网
    在虚拟化技术的快速发展下,VMware提供了强大的虚拟化平台,为用户提供了在单一物理机上运行多个操作系统的便捷方式。本文将介绍如何在VMware虚拟机中运行Linux操作系统,并顺利配置网络,使其能够与外部网络通信。在VMware虚拟机中运行Linux系统,并使其能够联网,通常需要执行......
  • SpringBoot集成LDAP认证登录
    Maven依赖<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.......
  • 开源服务器监控工具——Monit的介绍及使用
    一、Monit简介Monit是一个跨平台的用来监控Unix/Linux系统(比如Linux、BSD、OSX、Solaris)的工具。易于安装,轻量级(只有500KB大小),不依赖于任何第三方程序、插件或者库。Monit可以监控服务器进程状态、HTTP/TCP状态码、服务器资源变化、文件系统变动等等,根据这些变化,可以设定邮件报......
  • Linux虚拟机磁盘扩容
    Linux虚拟机磁盘扩容问题起源在使用linux系统开发时遇到文件无法创建的问题,根据提示发现是磁盘空间不足。使df-h 查看具体磁盘使用情况。  针对这个问题,有两种解决方案:使用du-sh./*可以查看当前工作目录下各文件的占用空间大小,然后可以删除一些比较大的且无用的文......
  • linux 系统shell脚本防止同一时间被多次重复执行
    前言当shell脚本中需要执行的步骤较多、耗时较长时,为了避免脚本被其它进程重复执行导致操作逻辑被打乱,需要使该脚本同一时间内只能被一个进程执行,类似C#中的lock代码块操作,确保线程安全代码#!/bin/bash#创建文件锁路径lock_file=/tmp/my_script.lock#信号处理函数fun......
  • linux查看每个cpu核心使用率
    Linux是一种开源的操作系统,它被广泛应用于各种计算机设备和服务器。在Linux系统中,我们可以使用一些命令来查看每个CPU核心的使用率。以下是一些常用的方法: 1.使用top命令:top命令是一个实时的系统监控工具,可以显示当前系统的各种信息,包括CPU的使用率。在终端中输入top命令后,......
  • Linux 用户和用户组管理
    一、Linux系统用户账号的管理1、添加新的用户账号使用useradd命令,其语法如下:useradd选项用户名参数说明:选项:-ccomment指定一段注释性描述。-d目录指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。-g用户组指定用户所属的用户组。-G用户组,用......
  • 配置云服务器环境
    配置云服务器环境1、docker创建ubuntu容器创建容器,其中--privileged能赋予容器更多权限,好让容器内的docker使用主机的守护进程dockerrun--privileged-p20000:8848-p20001:3306-p20002:6379-p20003:22--nameguli_environment-itdubuntu:20.04进入容器,注意/......
  • Linux常用命令记录
    Linux常用命令记录系统目录结构文件与目录管理命令Linux的文件目录是树状结构,最顶级的目录为根目录/,其他目录是通过挂载将其添加到文件树上,通过解除挂载将其移除。首先先了解什么是绝对路径和相对路径绝对路径:从根目录开始的完整路径描述,通常以/开头,从根目录root一直到......