【Ubuntu24.04】部署服务(基础)

news2024/11/24 10:30:06

目录

  • 0 背景
  • 1 设置静态IP
  • 2 连接服务器
  • 3 部署服务
    • 3.1 安装JDK
    • 3.2 下载并安装MySQL8.4
      • 3.2.1 从官网下载 APT Repository 配置文件
      • 3.2.2 安装 MySQL8.4
      • 3.2.3 配置远程连接
    • 3.3 下载并配置Redis
    • 3.4 上传jar包并部署应用
    • 3.5 开放端口
  • 4 总结

0 背景

    在成功安装了Ubuntu24.04操作系统后,自然想用它做些什么,正好手里有一个早先写的测试服务,所以想试试部署一下。
    服务是一个小小的单体SpringBoot项目,项目本身并不是重点,这里已经将其打成了jar包,已知其使用到的组件有RedisMySQL
    下面来部署一下。

1 设置静态IP

    既然是服务器,那么IP就不要变,尤其是个人笔记本这种连接WiFi的机器,使用DHCP分配IP的话,说不定哪天IP就变了。所以要想将笔记本当服务器使用,那么就得配置静态IP。
    桌面版的Ubuntu配置静态IP的方式很简单,只需要进入设置,然后选择网络,然后你连接的WiFi后面有一个齿轮,点击进去,可以看到现在的IP地址,切换到IPv4,选择手动,直接将刚才看到的IP地址填进去,并设置子网掩码和默认网关,网关一般都是最后一段写1即可。然后配置DNS解析地址为8.8.8.8即可。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
点击应用按钮即可,然后重启一下WiFi开关。
    现在应该就设置好静态IP了。接下来就是让远程的开发机可以通过ssh连接工具,比如Termius来连接。

2 连接服务器

    在开发机上安装Termius,然后在服务器上安装ssh服务,执行:

# 更新源
sudo apt update
# 安装ssh
sudo apt install openssh-server
# 开启防火墙
sudo ufw allow ssh
# 查看状态
sudo systemctl status ssh
# 如果是inactive也不要担心,重启服务即可
sudo systemctl restart ssh
# 开机自启动
sudo systemctl enable ssh

    这样一来就可以通过远程连接服务器了。这一步的作用是在开发机一个电脑上就可以完成从开发到部署的所有操作,而不需要去操作服务器。换句话说,如果操作服务器很方便的话,完全可以通过邮箱把需要部署的东西传到服务器然后在服务器上操作。
    但是自己的笔记本电脑一般会安装桌面版Ubuntu,所以远程连接不是必需的。

3 部署服务

    现在开始部署jar包,这里使用最原始最简单的方式部署。不过在部署之前需要安装必需的环境。

3.1 安装JDK

    老生常谈的JDK,只需要注意版本即可,SpringBoot3需要JDK17及以上,安装过程不细说,可以参考本文在最后给出的链接。

3.2 下载并安装MySQL8.4

    这个也是老生常谈的问题,在Ubuntu24.04上安装MySQL8非常简单,不需要传统的解压缩之类的操作,这个也会在文末给出链接。
    不过这里选择安装MySQL8.4,与之前的安装有所不同。

3.2.1 从官网下载 APT Repository 配置文件

官网地址
在这里插入图片描述
然后安装这个.deb文件,执行

# 跟上你下载的 .deb 文件名
sudo dpkg -i xxx.deb

在安装的时候会跳出图形化界面让你配置:
在这里插入图片描述
注意选择蓝色方框中的即可,第一个是mysql-8.4-lts,第二个是Enabled
第一个点进去长这样:
在这里插入图片描述
第二个点进去长这样:
在这里插入图片描述
选择好之后选择ok即可
在这里插入图片描述
然后这个.deb文件的安装就好了。

3.2.2 安装 MySQL8.4

    接下来就是使用apt安装MySQL了,这一步和安装MySQL8.0一样,区别就在于之前的那个.deb文件,执行:

sudo apt update
sudo apt install mysql-server

    在这个过程中会出现图形化界面让你配置密码,这样就不用安装好之后再去配置密码了。

3.2.3 配置远程连接

    首先进入MySQL,执行

mysql -uroot -p

    然后输入安装的时候设置的密码即可,进入之后执行:

use mysql;
# 查看一下用户以及密码策略,可以看到全是采用的 caching_sha2_password 而不是 mysql_native_password
select user,host,plugin from user;
# 设置远程权限
update user set host = '%' where user = 'root';
# 刷新,很重要
flush privileges;

    执行完上述操作后应该是这样的:
在这里插入图片描述
    至此MySQL的配置就完了,注意不需要去修改任何的配置文件,很方便。但是需要注意连接MySQL的图形化工具的驱动,我之前使用的SQLYog的一个很老的破解版(之所以不用社区版是因为它有广告)就因为驱动不够新而连不上。

3.3 下载并配置Redis

    Ubuntu24.04安装Redis同样非常方便,只需要执行:

sudo apt update
sudo apt upgrade -y
# 安装redis
sudo apt install redis-server -y
# 查看版本
redis-cli --version
# 查看状态,按q退出
sudo systemctl status redis

    至此Redis安装完成,还需要进一步地配置,执行:

sudo vim /etc/redis/redis.conf
# 找到 requirepass 那一行(用vim的/搜索即可),将其改为你的密码
# 找到 protected-mode 那一行,将 yes 改为 no
# 找到 bind 那一行,将其注释掉,表示任意IP均可访问,也可以设置指定IP访问
# 然后查看端口监听状态
netstat -tuln
# 如果看到 0.0.0.0:6379 就说明redis可以被任意远程IP访问

    至此Redis配置完成。

3.4 上传jar包并部署应用

    上传jar包可以用TermiusSFTP,这个传输可以直接传文件夹,非常方便,注意把数据库的SQL文件一起传过去。然后创建好数据库并做好必要的数据初始化,执行:

# 注意这是在 shell 终端执行的
mysql -uroot -p < your_sql_file.sql

    然后会让你输入密码,输入即可。此时数据库已经初始化好。接下来就是运行jar包了。执行

# 在后台运行jar包并将日志输出到demo.log中,这适合项目中没有配置日志的情况
nohup java -jar demo.jar > demo.log &
# 在后台运行但忽略任何输出,这要求在项目中已经配置好日志的输出
nohup java -jar demo.jar > /dev/null 2>&1 &
# 查看java进程
jps -l

    注意不要直接使用java -jar,因为这样会占据终端,并且将日志输出到终端,一旦Ctrl+C就会退出整个进程。

3.5 开放端口

    光有服务还不够,还需要能远程访问该服务,这就需要开放对应的端口。其实默认防火墙是inactive状态的,这表示所有端口都可以被访问。如果只是自己使用,关闭防火墙不见得是一个坏的选择,这样很简单,不用关心端口是否开放。不过用在其它地方的话就要考虑安全性问题了。

4 总结

    服务的部署很简单,繁琐的是布置好服务要用到的环境,以及维护服务,比如报错日志,服务的更新等。这里使用的是最原始的部署方式,主要是为了呈现部署原理以及操作步骤。
    最后是安装配置JDK以及MySQL8.0的方法:Ubuntu24.04开发环境配置

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

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

相关文章

Docker镜像分成

1. 镜像分层原理 1.1 镜像分层的定义与结构 Docker 镜像的分层存储机制是其核心特性之一&#xff0c;它允许 Docker 镜像由多个只读层组成&#xff0c;这些层叠加在一起形成一个完整的文件系统。每个层代表 Dockerfile 中的一个指令&#xff0c;并且每一层都是不可变的&#…

JavaWeb开发9

ResponseBody 类型&#xff1a;方法注解、类注解 位置&#xff1a;Controller方法上/类上 作用&#xff1a;将方法返回值直接响应&#xff0c;如果返回值类型是实体对象/集合&#xff0c;将会转换为JSON格式响应 说明&#xff1a;RestControllerControllerResponseBody; 统…

C#中日期和时间的处理

目录 前言 时间对于我们的作用 一些关于时间的名词说明 格里高利历 格林尼治时间(GMT) 协调世界时(UTC) 时间戳 DateTime 初始化 获取时间 计算时间 字符串转DateTime 存储时间 TimeSpan 初始化它来代表时间间隔 用它相互计算 自带常量方便用于和ticks进行计…

Docker + Jenkins + gitee 实现CICD环境搭建

目录 前言 关于Jenkins 安装Jenkins docker中运行Jenkins注意事项 通过容器中的Jenkins&#xff0c;把服务打包到docker进行部署 启动Jenkins 创建第一个任务 前言 CI/CD&#xff08;持续集成和持续交付/持续部署&#xff09;&#xff0c;它可以实现自动化的构建、测试和部署…

linux之文件(上)

linux之文件&#xff08;上&#xff09; 一.文件的预备知识二.C语言的文件接口和linux的系统接口2.1fopen2.2fclose2.3open2.4close2.5write2.6read 三.文件与系统3.1文件描述符3.2 标准输入&#xff0c;标准输出和标准错误3.3fd的分配规则 四.重定向4.1重定向的概念4.2重定向的…

【进度猫-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

多维视角下的知识管理:Spring Boot应用

2 开发技术 2.1 VUE框架 Vue.js&#xff08;读音 /vjuː/, 类似于 view&#xff09; 是一套构建用户界面的渐进式框架。 Vue 只关注视图层&#xff0c; 采用自底向上增量开发的设计。 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 2.2 Mysql数据库 …

【卷积基础】CNN中一些常见卷积(1*1卷积、膨胀卷积、组卷积、深度可分离卷积)

文章目录 逐通道卷积&#xff08;Pointwise Convolution&#xff0c;1x1 卷积&#xff09;主要作用逐通道卷积的操作过程优势代码示例典型应用 膨胀卷积&#xff08;Dilated Convolution&#xff09;主要作用工作原理膨胀率 (dilation rate) 的定义代码实例膨胀卷积的优点 组卷…

算法【Java】—— 动态规划之路径问题

前言 本文章终点解析第一道题目【不同路径】和最后一道题目【地下城游戏】的动态规划思路&#xff0c;中间几道题目会很快过完&#xff0c;大家如果不熟悉动态规划的思路可以重点看一下这两道题目的解析。 不同路径 https://leetcode.cn/problems/unique-paths 解析&#xf…

Linux - 信号

文章目录 一、信号的定义二、查看信号三、产生信号1、指令2、系统调用3、由软件条件产生信号4、异常5、键盘输入 四、保存信号1、补充&#xff1a;信号其他相关概念2、信号保存在哪&#xff0c;怎么保存&#xff1f;3、信号集操作函数 五、捕获信号1、概念2、捕获信号的时机3、…

group_concat配置影响程序出bug

在 ThinkPHP 5 中&#xff0c;想要临时修改 MySQL 数据库的 group_concat_max_len 参数&#xff0c;可以使用 原生 SQL 执行 来修改该值。你可以通过 Db 类来执行 SQL 语句&#xff0c;从而修改会话&#xff08;Session&#xff09;级别的变量。 步骤 设置 group_concat_max_l…

云专线优势有哪些?对接入网络有什么要求?

云专线是一种连接企业本地数据中心与云服务提供商之间的专用网络连接方式&#xff0c;具有以下优势&#xff1a; 高安全性&#xff1a;云专线提供了物理隔离的数据传输通道&#xff0c;减少了数据在公共互联网上传输时可能遭遇的安全风险。 低延迟&#xff1a;由于是直接连接&a…

【提高篇】3.1 GPIO(二,结构与工作模式介绍)

目录 一,GPIO的基本结构 1.1 保护二极管 1.2 上拉、下拉电阻 1.3 施密特触发器 1.4 P-MOS 管和 N-MOS 管 P-MOS管和N-MOS管的区别 1.5 片上外设 1.6 IDR,ODR,BSRR寄存器 1.6.1 IDR(Input Data Register) 1.6.2 ODR(Output Data Register) 1.6.3 BSRR(Bit Se…

数据迁移: 安全高效转移数据, 满足企业业务需求和技术改进

天津鸿萌科贸发展有限公司从事数据安全服务二十余年&#xff0c;致力于为各领域客户提供专业的数据存储、数据恢复、数据备份、数据迁移等解决方案与服务&#xff0c;并针对企业面临的数据安全风险&#xff0c;提供专业的相关数据安全培训。 鸿萌数据迁移业务为众多企业顺利高效…

Am I Isolated:一款安全态势基准测试工具

基于Rust的容器运行时扫描器作为一个容器运行&#xff0c;检测用户容器运行时隔离中的漏洞。 它还提供指导&#xff0c;帮助用户改善运行时环境&#xff0c;以提供更强的隔离保证。 容器的现状是它们并不包含&#xff08;隔离&#xff09;。 容器隔离的缺失在云原生环境中有…

战略共赢 软硬兼备|云途半导体与知从科技达成战略合作

2024年11月5日&#xff0c;江苏云途半导体有限公司&#xff08;以下简称“云途”或“云途半导体”&#xff09;与上海知从科技有限公司&#xff08;以下简称“知从科技”&#xff09;达成战略合作&#xff0c;共同推动智能汽车领域高端汽车电子应用的开发。 云途半导体与知从科…

基于卷积神经网络的农作物病虫害识别系统(pytorch框架,python源码)

更多图像分类、图像识别、目标检测等项目可从主页查看 功能演示&#xff1a; 基于卷积神经网络的农作物病虫害检测&#xff08;pytorch框架&#xff09;_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于卷积神经网络的农作物病虫害识别系统是在pytorch框架下实现的…

2-149 基于matlab的LDPC译码性能分析

基于matlab的LDPC译码性能分析&#xff0c;LDPC&#xff08;Low-Density Parity-Check&#xff09;码作为编码技术&#xff0c;具有优秀的纠错性能和较低的编解码复杂度。为保证可靠的数据传输&#xff0c;对传输过程中可能出现的信道噪声、干扰等进行模拟和分析。分析对比了误…

算法每日双题精讲——双指针(快乐数,盛最多水的容器)

&#x1f31f;快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 &#x1f31f; 别再犹豫了&#xff01;快来订阅我们的算法每日双题精讲专栏&#xff0c;一起踏上算法学习的精彩之旅吧&#xff01;&#x1f4aa;…

在Scrapy爬虫中应用Crawlera进行反爬虫策略

在互联网时代&#xff0c;数据成为了企业竞争的关键资源。然而&#xff0c;许多网站为了保护自身数据&#xff0c;会采取各种反爬虫技术来阻止爬虫的访问。Scrapy作为一个强大的爬虫框架&#xff0c;虽然能够高效地抓取网页数据&#xff0c;但在面对复杂的反爬虫机制时&#xf…