服务器 | Centos 9 系统中,如何部署SpringBoot后端项目?

news2025/6/9 7:51:54

系列文章目录

虚拟机 | Ubuntu 安装流程以及界面太小问题解决
虚拟机 | Ubuntu图形化系统: open-vm-tools安装失败以及实现文件拖放
虚拟机 | Ubuntu操作系统:su和sudo理解及如何处理忘记root密码


文章目录

  • 系列文章目录
  • 前言
  • 一、环境介绍
  • 二、 使用systemd 创建服务
    • 1.创建一个服务文件,例如 /etc/systemd/system/customize.service
    • 2.启用并启动服务
  • 扩展了解:systemd
  • 总结


前言

在 Linux 上部署项目能够提供一个高效安全灵活且成本效益高运行环境,特别适合于企业级应用、Web 服务以及任何需要长期稳定运行的服务。

服务器 选择Linux系统的原因:

  • 稳定性与安全性:Linux 操作系统以其稳定性和安全性著称。拥有强大的权限管理系统和定期的安全更新
  • 广泛的硬件支持:支持大量的硬件架构,包括但不限于 X86、ARM、 MIPS 。
  • 软件生态系统:通过包管理器(如 apt, yum, dnf 等),用户可以轻松安装数以万计的开源软件包。

常见发行版

  • Ubuntu:适合初学者的发行版
  • CentOS:企业级应用的理想选择
  • Debian:注重前沿技术

       总之呢,现如今绝大多数的企业级服务都运行在Linux系统上,尽管其发行版不尽相同。
       本文采用CentOS系统,也是我部署项目采用的发行版进行描述。期望各位能有所收获,如果有任何问题,可以在下方评论。我会在看到的第一时间回复处理。

一、环境介绍

项目所使用的环境,使用Docker容器进行部署:

  • JDK17
  • mysql 8.*
  • redis

二、 使用systemd 创建服务

1.创建一个服务文件,例如 /etc/systemd/system/customize.service

  • 配置成服务,即可通过systemd命令快捷启动服务。

代码如下:

[Unit]
# 服务的描述信息,显示在系统日志和服务状态中
Description=My Java Application
# 指定该服务在哪些目标之后启动,这里表示在 syslog.target 启动后启动
After=syslog.target

# 可选:也可以指定网络就绪后再启动(如果你的应用依赖网络)
# After=network.target

[Service]
# 指定运行此服务的用户,避免使用 root 用户提高安全性(生产环境下)---- 需修改 ---
User=your-username
# 启动命令:执行 Spring Boot 可执行 jar 文件
# 注意路径要写完整、绝对路径                                ---- 需修改 ---
ExecStart=/usr/lib/jvm/java-17-openjdk-17.0.14.0.7-2.el9.x86_64/bin/java -jar /your-app.jar
SuccessExitStatus=143

# 可选:标准输出重定向到日志文件(便于排查问题)
StandardOutput=file:/media/mediaLog/logfile.log
# 可选: 标准错误输出也重定向到日志文件
StandardError=file:/media/mediaLog/errorfile.log

# 自动重启策略:
# always: 总是重启
# on-failure: 仅当失败时重启(退出码非0、被信号终止等情况)
Restart=on-failure

[Install]
# 指定服务安装后在哪个 target 下启用(multi-user.target 表示多用户命令行模式)
WantedBy=multi-user.target

2.启用并启动服务

  • 如果你使用的是vim编辑器修改配置文件,可以通过 :wq 保存并退出。此时服务配置文件就完成了。
  • 我们可以通过以下命令使自定义服务配置文件生效,相当于告诉系统
    • “ 我更新了服务配置,刷新一下哈!”
  • 系统会重新读取这些配置,我们亦可以通过以下命令使我们的服务:
    • 开机自启
    • 查看状态
    • 手动启动 / 关闭

代码如下:

# 重新加载 systemd 的配置文件
sudo systemctl daemon-reload
# 设置服务开机自启
sudo systemctl enable customize
# 启动服务
sudo systemctl start customize
# 查看服务状态
sudo systemctl status customize
# 停止服务
sudo systemctl stop customize

# 等等

该处使用 systemctl命令:管理系统和服务的命令行工具,基于 systemd 初始化系统 。


扩展了解:systemd

简介:

  • systemd 是一个系统与服务管理器(init system:初始化系统),负责在系统启动时加载内核后 启动各种服务和进程
  • 相比传统的 SysV init 而言,其更快、更灵活,支持并行启动服务,并提供更好的依赖管理日志记录功能。

总结

  • 通过服务的模式部署SpringBoot项目,让我们的部署过程更加简洁高效易于管理
  • 这种部署方式,十分适合生产环境的部署搭建。当然,后期也可能会通过各种工具进行自动化部署(例如:Jenkins)。

各位再见!这里是 鳄鱼杆的空间,钓……鳄鱼的杆儿!

期待下次再会!

愿你的每一次垂钓之旅都能满载而归。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2405126.html

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

相关文章

(2025)Windows修改JupyterNotebook的字体,使用JetBrains Mono

(JetBrains Mono字体未下载就配置,这种情况我不知道能不能行,没做过实验,因为我电脑已经下载了,不可能删了那么多字体做实验,我的建议是下载JetBrains Mono字体,当你使用VsCode配置里面的JetBrains字体也很有用) 首先参考该文章下载字体到电脑上 VSCode 修改字体为JetBrains …

小番茄C盘清理:专业高效的电脑磁盘清理工具

在使用电脑的过程中,我们常常会遇到系统盘空间不足、磁盘碎片过多、垃圾文件堆积等问题,这些问题不仅会导致电脑运行缓慢,还可能引发系统崩溃。为了解决这些问题,小番茄C盘清理应运而生。它是一款专业的C盘清理软件,能…

AUTOSAR实战教程--标准协议栈实现DoIP转DoCAN的方法

目录 软件架构 关键知识点 第一:PDUR的缓存作用 第二:CANTP的组包拆包功能 第三:流控帧的意义 配置过程 步骤0:ECUC模块中PDU创建 步骤1:SoAD模块维持不变 步骤2:DoIP模块为Gateway功能添加Connection ​步骤3:DoIP模块为Gateway新增LA/TA/SA ​步骤4:PDUR模…

【MySQL系列】MySQL 导出表数据到文件

博客目录 一、使用 SELECT INTO OUTFILE 语句基本语法参数详解注意事项实际示例 二、使用 mysqldump 工具基本语法常用选项实际示例 三、使用 MySQL Workbench 导出导出步骤高级选项 四、其他导出方法1. 使用 mysql 命令行客户端2. 使用 LOAD DATA INFILE 的逆向操作3. 使用编程…

vue3:十五、管理员管理-页面搭建

一、页面效果 实现管理员页面,完成管理员对应角色的中文名称显示,实现搜索栏,表格基本增删改查,分页等功能 二、修改问题 1、修改搜索框传递参数问题 (1)问题图示 如下图,之前搜索后,传递的数据不直接是一个value值,而是如下图的格式 查询可知这里传递的数据定义的是…

基于51单片机的红外防盗及万年历仿真

目录 具体实现功能 设计介绍 资料内容 全部内容 资料获取 具体实现功能 具体功能: (1)实时显示年、月、日、时、分、秒、星期信息; (2)红外传感器(仿真中用按键模拟)检测是否有…

【飞腾AI加固服务器】全国产化飞腾+昇腾310+PCIe Switch的AI大模型服务器解决方案

以下是全国产化飞腾AI加固服务器采用飞腾昇腾PCIe Switch解决方案: 🖥️ 一、硬件架构亮点 ‌国产算力双擎‌ ‌飞腾处理器‌:搭载飞腾FT2000/64核服务器级CPU(主频1.8-2.2GHz),支持高并发任务与复杂计算&a…

应用层协议:HTTPS

目录 HTTPS:超文本传输安全协议 1、概念 2、通信过程及关键技术 2.1 通信过程 1> TLS握手协商(建立安全通道) 2> 加密数据传输 2.2 关键技术 1> 对称加密算法 2> 非对称加密 3> 对称加密和非对称加密组合 4> 数…

【ArcGIS技巧】—村庄规划规划用地规划状态字段生成工具

"国土空间规划后续也是走向数据治理,数据建库已经是涉及到城市规划、建筑、市政、农业、地理信息、测绘等等方方面面。不得不说以后数据库建设跟维护,是很多专业的必修课。小编就湖南省的村庄规划建库过程中规划用地用海中规划状态字段写了个小工具…

【PCIe总线】-- inbound、outbound配置

PCI、PCIe相关知识整理汇总 【PCIe总线】 -- PCI、PCIe相关实现 由之前的PCIe基础知识可知,pcie的组成有:RC(根节点)、siwtch(pcie桥)、EP(设备)。 RC和EP,以及EP和EP能…

分布式锁实战:Redisson vs. Redis 原生指令的性能对比

分布式锁实战:Redisson vs. Redis 原生指令的性能对比 引言 在DIY主题模板系统中,用户可自定义聊天室的背景、图标、动画等元素。当多个运营人员或用户同时修改同一模板时,若没有锁机制,可能出现“甲修改了背景色,乙…

react+taro 开发第五个小程序,解决拼音的学习

1.找一个文件夹 cmd 2.taro init 3.vscode 找开该文件夹cd help-letters 如:我的是(base) PS D:\react\help-letters> pnpm install 4.先编译一下吧。看下开发者工具什么反应。 pnpm dev:weapp 5.开始规则。我用cursor就是不成功。是不是要在这边差不多了&…

kafka(windows)

目录 介绍 下载 配置 测试 介绍 Kafka是一个分布式流媒体平台,类似于消息队列或企业信息传递系统。 下载 Kafka对于Zookeeper是强依赖,所以安装Kafka之前必须先安装zookeeper 官网:Apache Kafka 下载此安装包并解压 配置 新建log…

基于安卓的文件管理器程序开发研究源码数据库文档

摘 要 伴随着现代科技的发展潮流,移动互联网技术快速发展,各种基于通信技术的移动终端设备做的也越来越好了,现代智能手机大量的进入到了我们的生活中。电子产品的各种软硬技术技术的发展,操作系统的不断更新换代,谷歌…

EMC VNXe 存储系统日志收集方法

写在前面 有朋友找来看看VNXe的故障,这种问题总是要收集日志,顺便这里也分享给大家。 注意,VNXe和VNX 属于完全不同的产品,不要看名字很类似,操作系统已经完全重构了,如果说是否有联系,大概就…

从“人找政策”到“政策找人”:智能退税ERP数字化重构外贸生态

离境退税新政核心内容与外贸企业影响 (一)政策核心变化解析 退税商店网络扩容 新政明确鼓励在大型商圈、旅游景区、交通枢纽等境外旅客聚集地增设退税商店,并放宽备案条件至纳税信用M级企业。以上海为例,静安区计划新增1000家退…

以人类演示视频为提示,学习可泛化的机器人策略

25年5月来自清华大学、上海姚期智研究院和星动纪元(RoboEra)公司的论文“Learning Generalizable Robot Policy with Human Demonstration Video as a Prompt”。 最近的机器人学习方法通​​常依赖于从通过遥操作收集的大量机器人数据集中进行模仿学习…

SOC-ESP32S3部分:36-适配自己的板卡

飞书文档https://x509p6c8to.feishu.cn/wiki/RP4UwPrsKi4xuQkKLAAcKxD3n1b 如果你自己画了PCB板,需要把自己绘制的板卡配置小智AI工程,可以参考此文档。 下载源码 克隆或下载源码到本地,这里以1.5.5为例,大家可以自行修改其它版…

LLMs 系列科普文(8)

八、模型的自我认知 接下来我们聊聊另一种问题,即模型的自我认知。 网上经常经常可以看到人们会问大语言模型一些关于认知方面的问题,比如“你是什么模型?谁创造了你?” 说实话,其实这个问题有点无厘头。 之所以这么…

机器学习基础相关问题

机器学习相关的基础问题 K-means是否一定会收敛 K-means是否一定会收敛 K-means算法在有限步数内一定会收敛,但收敛到的可能是局部最优解而非全局最优解。以下是详细分析: K-means 的优化目标是最小化 样本到其所归属簇中心的距离平方和(SSE…