• 华为云云耀云服务器L实例评测开展一站式服务部署


    在这里插入图片描述

    🔭 嗨,您好 👋 我是 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文件立即生效
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    6、刷新核心配置文件,使配置能够生效

    source /etc/profile

    7、通过 java 命令检测是否在 Linux 安装 jdk 成功,能够输出内容说明配置已经生效

    java -version
    
    • 1

    核心软件配置以及安装

    在基础环境中,将要部署的 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;
            }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    当配置文件变更或新增配置文件以后,一般我们都会通过命令来变更,如下:

    安全退出: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>8maven.compiler.source>
         <maven.compiler.target>8maven.compiler.target>
         <spring-boot.version>2.6.7spring-boot.version>
     properties>
    
     <dependencies>
         <dependency>
             <groupId>org.springframework.bootgroupId>
             <artifactId>spring-boot-starter-webartifactId>
             <version>${spring-boot.version}version>
         dependency>
     dependencies>
    
     <build>
         <plugins>
             <plugin>
                 <groupId>org.springframework.bootgroupId>
                 <artifactId>spring-boot-maven-pluginartifactId>
                 <version>${spring-boot.version}version>
                 <executions>
                     <execution>
                         <goals>
                             <goal>repackagegoal>
                         goals>
                     execution>
                 executions>
             plugin>
         plugins>
     build>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    2、应用配置文件,如下:

    server:
      servlet:
        context-path: /admin
      port: 8088
    
    • 1
    • 2
    • 3
    • 4

    3、测试接口控制器,如下:

    /**
     * @author vnjohn
     * @since 2023/10/5
     */
    @RestController
    public class HelloController {
    
        @GetMapping("/say_hello")
        public String sayHello() {
            return "Hello World!!";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    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,订阅一波不再迷路

    大家的「关注❤️ + 点赞👍 + 收藏⭐」就是我创作的最大动力!谢谢大家的支持,我们下文见!

  • 相关阅读:
    PowerDotNet平台化软件架构设计与实现系列(13):应用监控平台
    基于CefSharp开发浏览器(十)CefSharp.Wpf中文输入法偏移处理
    Compose Navigation用于Android多module项目最佳实践
    Java,常用类与API,String类
    Spring5源码11-容器刷新refresh方法(注解版)
    【程序员必备】七夕表白攻略:”月遇从云,花遇和风,晚上的夜空很美“。(附源码合集)
    物无定味适口者珍,Python3并发场景(CPU密集/IO密集)任务的并发方式的场景抉择(多线程threading/多进程multiprocessing/协程asyncio)
    2021年上半年软件设计师下午真题及答案解析(二)
    Linux基础知识笔记
    前端必备:Node.js是什么?它有哪些特点和优势?
  • 原文地址:https://blog.csdn.net/vnjohn/article/details/132930093