基于 RHEL 9.3 的企业级 Web 服务高可用部署实践

项目经历

项目一:基于 RHEL 9.3 的企业级 Web 服务高可用部署实践

项目环境:VMware Workstation + RHEL 9.3 DVD 镜像、本地 YUM 源、x86_64 虚拟机

项目职责:独立完成系统安装、本地源配置、基础服务部署与高可用架构搭建

项目描述:

在 RHEL 9.3 系统环境下,搭建一套可支撑中小型业务的 Web 服务架构。通过配置本地 DVD 软件源完成依赖安装,部署 Nginx 作为反向代理与静态资源服务器,后端对接 Tomcat 提供 Web 应用服务;使用 MySQL 实现数据持久化,Redis 提供缓存加速;引入 Keepalived 实现节点高可用,Docker 容器化简化服务迁移与管理。完成服务启停、日志排查、端口监听、进程监控等日常运维操作。

项目成果:

  1. 完成 RHEL 9.3 系统安装与初始化优化,配置本地 DVD YUM 源,解决离线环境软件安装问题。
  2. 成功部署 Nginx + Tomcat + MySQL + Redis 全栈服务,可正常访问 Web 测试页面。
  3. 实现 Keepalived 主备高可用,模拟主节点故障可自动切换,服务无中断。
  4. 掌握 Docker 基础镜像构建、容器运行、端口映射与数据持久化操作。
  5. 具备 Linux 系统日志排查、服务状态检查、端口占用分析等基础运维能力。

二、实践步骤(RHEL 9.3 DVD)

全程用 rhel-9.3-x86_64-dvd.iso。

  1. 虚拟机安装 RHEL 9.3

  2. 新建虚拟机,挂载 RHEL 9.3 DVD

  3. 安装类型:Server with GUI 或 最小化安装

  4. 分区默认即可,设置 root 密码,创建普通用户

  5. 等待安装完成重启

  6. 挂载 DVD 并配置本地 YUM 源(核心步骤)

    bash

  7. 创建挂载目录

    mkdir -p /mnt/dvd

  8. 临时挂载光盘

    mount /dev/sr0 /mnt/dvd

  9. 永久挂载(开机自动挂)

    echo "/dev/sr0 /mnt/dvd iso9660 defaults 0 0" >> /etc/fstab

  10. 备份原有 repo

    mkdir -p /etc/yum.repos.d/bak

    mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/

  11. 新建本地源配置

    vi /etc/yum.repos.d/rhel9-dvd.repo

写入内容:

BaseOS

name=BaseOS

baseurl=file:///mnt/dvd/BaseOS

gpgcheck=1

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

AppStream

name=AppStream

baseurl=file:///mnt/dvd/AppStream

gpgcheck=1

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

  1. 测试源是否可用

dnf clean all

dnf makecache

dnf install -y tree wget net-tools vim

结果:离线安装软件成功,本地源配置完成。

  1. 系统基础初始化(运维标配)

关闭防火墙(学习环境)

systemctl stop firewalld

systemctl disable firewalld

关闭 SELinux

setenforce 0

sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

查看端口、进程

netstat -tuln

ps -ef | grep systemd

  1. 安装并启动 Nginx(DVD 源内有)

dnf install -y nginx

systemctl start nginx

systemctl enable nginx

curl localhost

结果:出现 Nginx 默认欢迎页,服务正常运行。

  1. 安装 Tomcat 运行 Web 应用

dnf install -y java-17-openjdk tomcat

systemctl start tomcat

systemctl enable tomcat

访问:

plaintext

http://本机IP:8080

结果:Tomcat 默认页面正常打开。

  1. 安装 MySQL(MariaDB)并测试

dnf install -y mariadb-server

systemctl start mariadb

systemctl enable mariadb

初始化设置密码

mysql_secure_installation

登录测试:

mysql -u root -p

结果:可正常进入数据库,执行 create database、create table 等基础 SQL。

  1. 安装 Redis 并启动

dnf install -y redis

systemctl start redis

systemctl enable redis

redis-cli

执行:

plaintext

set name test

get name

结果:缓存读写正常。

  1. Docker 容器化部署(RHEL 9 自带)

dnf install -y docker

systemctl start docker

systemctl enable docker

拉取并运行 Nginx 容器

docker run -d -p 8081:80 --name my-nginx nginx

docker ps

结果:容器运行,访问 8081 端口可看到 Nginx 页面。

  1. Keepalived 高可用(可选,简历加分)

dnf install -y keepalived

编辑配置文件

vi /etc/keepalived/keepalived.conf

配置简单 VIP(如 192.168.x.100),启动服务:

systemctl start keepalived

结果:

  • 主节点持有 VIP
  • 关闭主节点 keepalived,备节点自动接管
  • 模拟故障切换成功,高可用验证通过
相关推荐
Mapleay10 分钟前
FE-BE 动态路机制之 DPCM 与 DAPM 协作
linux
IT大白鼠28 分钟前
Linux故障分析与排查:系统日志、启动故障与文件系统修复
linux·运维·服务器
老詹图解IT31 分钟前
统信 UOS 登录界面转圈闪退/卡登录等常见原因及处理
linux·服务器·网络
闫记康31 分钟前
Linux学习笔记day1
linux·笔记·学习
轻颂呀38 分钟前
进程间关系和守护进程
linux·网络
sbjdhjd43 分钟前
02 (中)| K8s Pod 生产化落地:从配置到优化全流程
linux·运维·云原生·kubernetes·开源·podman·kubelet
皓月盈江43 分钟前
Linux Ubuntu系统如何编辑Docker容器内的文件
linux·ubuntu·docker·容器·靶场·vulhub·编辑docker内文件
jingyu飞鸟1 小时前
linux系统二进制安装MySQL 8.4、8.0版本数据库,配置crontab和xtrabackup数据库热备份脚本
linux·数据库·mysql
无限进步_1 小时前
从Multics到Linux:操作系统的自由之路
linux·运维·服务器
China_Yanhy1 小时前
【云原生实战】从零构建无节点 EKS:Karpenter 极简注入与全自动算力接管指南
linux·运维·云原生