阶段六:博客系统部署上线实施
1. 博客系统基本介绍
目前,公司Java开发团队完成了一个博客系统的开发任务,目前需要运维工程师完成对该项目的上线任务,要求将该项目部署上线到阿里云生产服务器中,完成最终上线,并对外开放使用
以下为页面系统界面:

首先,要先了解该项目的整体软件架构组成部分,通过软件架构,我们能了解在本次运维部署任务中,主要承担那些具体的工作内容:
该项目的软件架构组成:
开发语言: Java1.8
数据库服务: MySQL
WEB服务器: Tomcat
反向代理服务器: Nginx
关于数据库说明:
1- 需要在数据库中,准备forum-java数据库
2- 项目提供了基础数据集:scheam.sql 要求在部署的时候导入 才可正常使用系统
3- 请注意修改项目本身数据库的相关信息,避免无法连接
注意: 此信息一般会有开发人员提供,或可与开发人员沟通配合上线注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
2. 博客系统项目架构流程
Web服务器是一种软件或硬件,负责接收用户的HTTP请求并返回相应的网页内容(HTML、CSS、JavaScript等)到浏览器。它是客户端(浏览器)和网站资源之间的桥梁,提供网站内容的访问服务。

Nginx: Nginx(发音为“Engine-X”)是一款高性能的Web服务器和反向代理服务器, 在此处主要提供二个功能:
1- 高性能能力: Nginx可以处理5w ~ 10w个并发连接
2- 请求转发能力(反向代理): 通过Nginx将访问目标服务的请求转发给WEB服务器,由WEB服务器处理具体的请求资源
扩展说明: 负载能力
可以将后台WEB服务器部署多台,此时可以由Nginx均衡的请求分散到多个节点上,实现负载
WEB服务器:
只有通过WEB服务器,才能够将WEB项目发布出去,让其他人可以访问,而对于Java web程序来说,主要使用WEB服务器软件为Tomcat
数据库: 用于存储项目的各项数据,例如 用户的信息、博客的数据等,本次项目开发团队采用的是MySQL注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
3. 部署组件及各节点说明
本次项目主要涉及的组件, 包括Java、Mysql、tomcat、nginx等,具体规划如下表:
| 服务器节点 | Java | MYSQL | Tomcat | Nginx |
|---|---|---|---|---|
| node1 | √ | √ | ||
| node2 | √ | √ | √ |
部署的先后顺序: 服务器准备(二台) ->> Java ->> MYSQL ->> Tomcat ->> Nginx
4. 部署工作实施
4.1 准备二台阿里云服务器
资源要求: 2核 2GB内存 40GB硬盘






注意: 需要保证账户的费用大于100元,否则无法提交订单


如何验证服务器是满足要求:
- 看服务器的资源是否满足:

- 服务器的操作系统: 必须是centos stream 9
- 如果不是, 参考3.2.1 如何更换云服务器的操作系统

- 服务器的安全组:必须开放两个端口 80 和 22


通过远程连接工具,连接二个对应的阿里云的ECS服务器:

修改主机名分别为node1和node2
hostnamectl set-hostname node1.itcast.cn
hostnamectl set-hostname node1.itcast.cn注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
分别在node1和node2的/etc/hosts文件添加以下内容
172.29.0.30 node1 node1.itcast.cn
172.29.0.31 node2 node2.itcast.cn
注意: 前面得IP地址, 需要填写ECS服务器的公网对应的私网(内网)IP地址
配置完成后, 可以使用ping命令测试不同别名是否对应了对应的IP地址, 并监测是否可以互通注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
4.2 部署JDK环境
Java是美国sun公司在1995年推出的一门计算机高级编程语言。2009年sun公司被Oracle公司收购

Java之父:詹姆斯-高斯林

那么Java能做什么呢?
- 1- 桌面应用开发: 各种税务管理软件、IDEA等……
- 2- 企业级应用开发:微服务、大型互联网应用
- 3- 移动应用开发:Android、医疗设备
- 4- 服务器系统:应用的后台系统
- 5- 大数据开发: Hadoop 、Flink ……
- 6- 游戏开发:我的世界
作为运维开发人员, 就要把各种Java开发的应用部署到服务器中, 未来我们在部署各种软件,大多数也跟Java有关系
目录规划说明:
软件安装目录统一放置到/opt/目录下 【常规安装目录】
安装包统一放置目录: /export/software目录下 【此目录没有太强制要求】注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
mkdir -p /export/software/命令作用:
- 创建目录
/export/software/;-p会同时创建缺失的父目录,并且目录已存在时不报错。
执行结果:
- 成功后目标目录会存在;可用
ls -ld 目录名查看目录权限和属主。
关键参数:
注意事项:
**注意事项:**注意事项:
**注意事项:**

注意事项:
**注意事项:**


注意事项:
**命令拆解:**
| 命令部分 | 重要程度 | 详细解释 |
|---|---|---|
| `https://mirrors.huaweicloud.com/apache/tomcat/tomcat-9/v9.0.97/bin/apache-tomcat-9.0.97.tar.gz` | 【普通】 | 目标 URL `https://mirrors.huaweicloud.com/apache/tomcat/tomcat-9/v9.0.97/bin/apache-tomcat-9.0.97.tar.gz`,命令会访问这个地址或从这里下载内容。 |
**注意事项:**
tomcat目录介绍:

./startup.sh
**注意事项:**
可以通过进程,查看是否有Tomcat进程信息:注意事项:
**注意事项:**
验证防火墙规则注意事项:
**命令拆解:**
| 命令部分 | 重要程度 | 详细解释 |
|---|---|---|
| `--zone=public` | 【普通】 | 长参数 `--zone` 的值是 `public`,用于精确控制命令行为。 |
| `--add-port=8080/tcp` | 【普通】 | 长参数 `--add-port` 的值是 `8080/tcp`,用于精确控制命令行为。 |
**注意事项:**

./shutdown.sh ./startup.sh
**注意事项:**
用户名:superadmin@developers.pub
密码:admin123456注意事项:
**注意事项:**

注意事项:
**注意事项:**
或者:
注意事项:

如何配置呢?
**命令拆解:**
| 命令部分 | 重要程度 | 详细解释 |
|---|---|---|
| `--zone=public` | 【普通】 | 长参数 `--zone` 的值是 `public`,用于精确控制命令行为。 |
| `--add-service=http` | 【普通】 | 长参数 `--add-service` 的值是 `http`,用于精确控制命令行为。 |
| `--add-service=https` | 【普通】 | 长参数 `--add-service` 的值是 `https`,用于精确控制命令行为。 |
| `--add-port=80/tcp` | 【普通】 | 长参数 `--add-port` 的值是 `80/tcp`,用于精确控制命令行为。 |
| `--add-port=443/tcp` | 【普通】 | 长参数 `--add-port` 的值是 `443/tcp`,用于精确控制命令行为。 |
**注意事项:**
两种思路:
**注意事项:**
原因说明:注意事项: