🔭 嗨,您好 👋 我是 vnjohn,在互联网企业担任 Java 开发,CSDN 优质创作者
📖 推荐专栏:Spring、MySQL、Nacos、Java,后续其他专栏会持续优化更新迭代
🌲文章所在专栏:Linux
🤔 我当前正在学习微服务领域、云原生领域、消息中间件等架构、原理知识
💬 向我询问任何您想要的东西,ID:vnjohn
🔥觉得博主文章写的还 OK,能够帮助到您的,感谢三连支持博客🙏
😄 代词: vnjohn
⚡ 有趣的事实:音乐、跑步、电影、游戏
目录
华为云控制台
https://www.huaweicloud.com/product/hecs-light.html
在未购买过服务器实例时,点击购买渠道进行「服务器选购」
在购买过服务器实例情况下,进入控制台,如下图
初始化服务器私密信息
在购买服务器实例以后,密码不会保存起来,可以分以下几步来进行操作
1、重新设置一个新的服务器登录密码,重置密码入口在下侧的远程登录入口「要求服务器实例是在运行中」
2、配置安全组需要放行的端口,比如:数据库(3306)、SSHD(22/24)、后端/前端服务访问端口(80/443)、Redis 缓存(6379) 等等
将所有要放行的端口单独写入到一个安全组中或将所有的 IP 白名单放入到一个安全组中,一台服务器实例可以支持配置多组安全组,以作到运维、开发不同角色的区分,用于追溯 IP 所属对象
宝塔面板
在本章节中,我们使用宝塔面板来管理 MySQL、Nginx、Redis 服务,首先要构建出来一个基于宝塔面板的镜像服务实例 > 轻量级服务器
初始化宝塔面板
1、获取宝塔管理页面的管理员用户名及密码
sudo cat /credentials/password.txt
会在控制台输出账号、密码
2、登录好宝塔账户/密码以后,安装基础组合软件后再进行管理
3、安装完成,在软件面板 > 已安装选项进行查看,如下:
软件安装完成以后,等先将所有的额外软件安装完成以后,再到这些对应的配置项进行相关的一些配置,以便来完成整个服务的一站式部署。
基础环境安装
Java
下载地址:https://www.oracle.com/cn/java/technologies/downloads/
以安装 1.8 为例,区分 Linux 内核版本,下载不同的包文件
通过:uname -srm 命令查看内核版本
内核版本:arm64,下载包文件:jdk-8u381-linux-aarch64.tar.gz
内核版本:x86_64,下载包文件:jdk-8u381-linux-i586.tar.gz 或 jdk-8u381-linux-x64.tar.gz
1、将下载的 tar.gz 包通过 SFTP 放入到 /opt 目录下
2、解压对应的包文件,tar -zxvf Xxx
root@hcss-ecs-324d:/opt# tar -zxvf jdk-8u381-linux-x64.tar.gz
3、调整 jdk 文件目录名称
root@hcss-ecs-324d:/opt# mv jdk1.8.0_381/ jdk8
4、将 jdk 文件目录移动到 /usr/local 下
root@hcss-ecs-324d:/opt# mv jdk8/ /usr/local/
5、编辑核心配置文件 /etc/profile,追加以下内容到文件末尾中
#按i进入编辑,在profile文件尾部添加如下内容
#JDK配置
export JAVA_HOME=/usr/local/jdk8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
#Esc --> :wq保存并退出
#通过命令让profile文件立即生效
6、刷新核心配置文件,使配置能够生效
source /etc/profile
7、通过 java 命令检测是否在 Linux 安装 jdk 成功,能够输出内容说明配置已经生效
java -version
核心软件配置以及安装
在基础环境中,将要部署的 Java 环境进行了安装,接下来,就对 MySQL、Nginx 这一块的内容进行一些简单的配置
MySQL
在左侧菜单栏,点击数据库,进行数据库的添加,如下:
添加数据库时,会让我们填写数据库名、用户名、密码、访问权限这些信息,访问权限这块分为三种
本地服务器:当前创建的数据库只能在当前服务器内部进行访问,其他的服务都无法访问进来
所有人(不安全):类似于 ‘%’,所有的外部服务,都可以直接访问这台数据库,不限制 IP,一般在测试环境我们都会开启允许所有人
指定 IP:只有配置在文本框内的 IP 列表才可以进行该数据库的访问,其他 IP 都会被阻挡在外部无法直接访问,在生产环境为了保证数据的安全性,我们会进行这次方式的设置
数据库添加完成以后,我们通过 Dbeaver、Navicat 数据库工具进行连接,然后将对应的表结构 SQL 导入到该数据库中,程序才能正常读取到数据库结构信息进行数据的增删改查操作
管理:通过 php admin 工具管理数据库的一些核心配置信息,譬如,当数据库发生死锁时,通过该工具访问 MySQL 自带的数据库表才能进行 Kill 掉释放思索
权限:调整上面说到的 本地服务器、所有人(不安全)、指定 IP 的选项
工具:针对该数据库的表信息进行预览和调整对应的表信息
改密:调整对应的数据库用户名密码
Nginx
结合数据库软件已部署完成,后端服务打好包以后,再调整一下 Nginx 代理的配置,就能完成在服务器上的服务一站式部署了
结合上图,引入了该目录下所有的代理配置,我们将单独要部署的服务放入以下文件中,以便我们的服务能够通过反向代理的方式完成部署。
/www/server/panel/vhost/nginx/*.conf
创建一个新的文件:server_demo.conf,文件内容如下:
# upstream 模块必须配置在 http 模块内
# 在此处可以配置多个后端服务,来完成同一个服务的集群化服务代理访问
upstream backend {
server 127.0.0.1:8088;
}
server {
listen 80;
server_name localhost;
location /admin {
proxy_pass http://backend;
}
location / {
root /usr/local/dist;
try_files $uri $uri/ @router;#需要指向下面的@router否则会出现vue的路由在nginx中刷新出现404
index index.html index.htm;
}
# 对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件
# 因此需要rewrite到index.html中,然后交给路由在处理请求资源
location @router {
rewrite ^.*$ /index.html last;
}
}
当配置文件变更或新增配置文件以后,一般我们都会通过命令来变更,如下:
安全退出:sbin/nginx -s quit
重载配置:sbin/nginx -s
重启:sbin/nginx restart
Redis
我们之前在初始化宝塔面板软件时,未将 Redis 服务安装在内,此处来学习如何运用宝塔来安装新的 Redis 软件
第一种:点击安装,就是在本机上安装一个新的 Redis 服务
第二种:添加远程服务器就是以宝塔作为一个 Redis 命令行桌面客户端,类似 Redis DeskTop
我们以第一种的方式安装一个新的 Redis 服务器,选择好版本以后,让他自动进行安装
在 Redis 控制台,可以以视图的方式向 Redis 中插入缓存信息,非常的方便!!
后端服务部署
新建一个空的项目,引入以下配置来完成服务的部署案例
1、maven 配置
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<spring-boot.version>2.6.7</spring-boot.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring-boot.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
2、应用配置文件,如下:
server:
servlet:
context-path: /admin
port: 8088
3、测试接口控制器,如下:
/**
* @author vnjohn
* @since 2023/10/5
*/
@RestController
public class HelloController {
@GetMapping("/say_hello")
public String sayHello() {
return "Hello World!!";
}
}
4、在 maven 窗口执行 maven 命令,mvn clean install package 打好包以后,通过 SFTP 方式将 jar 文件传入到服务器目录上
5、在服务器通过脚本,运行命令:java -jar server-demo-1.0-SNAPSHOT.jar &
6、测试通过宝塔面板部署的软件服务以及后端服务部署以后,整个流程是否能够正常访问
http://公网 IP/admin/say_hello
总结
该篇通过华为云云耀服务器 L 实例结合宝塔面板,将整个服务部署流程跑通,安装基础环境 Java 搭建,核心软件:MySQL、Redis、Nginx 部署的搭建以及配置,相信这个会对大部分的后端程序猿提供很大的帮助,一般在工作中很难接触到这部分的工作,个人作为课外学习以及自身的总结,借助这个机会来完成整体一站式服务部署的教程,希望能够帮助到大家!!有任何的问题在底下留言或私信
🌟🌟🌟愿你我都能够在寒冬中相互取暖,互相成长,只有不断积累、沉淀自己,后面有机会自然能破冰而行!
博文放在 Redis 专栏里,欢迎订阅,会持续更新!
如果觉得博文不错,关注我 vnjohn,后续会有更多实战、源码、架构干货分享!
推荐专栏:Spring、MySQL,订阅一波不再迷路
大家的「关注❤️ + 点赞👍 + 收藏⭐」就是我创作的最大动力!谢谢大家的支持,我们下文见!