基于 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,备节点自动接管
  • 模拟故障切换成功,高可用验证通过
相关推荐
别动我齐刘海3 小时前
C++ 工程化学习
java·linux·前端·c++·学习·机器学习·机器人
玖石书5 小时前
Ubuntu 24.04 UFW 全命令攻略:从入门到端口开放实战
linux·运维·ubuntu
xiaoqiMikko5 小时前
Linux 实战(七):useradd、sudoers、umask、SGID、软链 —— 三台真机实测
linux·centos
拂拉氏7 小时前
【知识讲解】 Linux之动静态库的了解
linux·运维·服务器·动静态库
Fcy6487 小时前
Linux下 五种IO模型的认识与⾮阻塞IO的实现
linux·服务器·io
Mikko77 小时前
Linux 重启后日志没了?进程被 OOM 杀了去哪看?logrotate 之后日志还往旧文件写?三台真机实测日志与性能排查
linux·运维·centos
书生执笔画浮沉8 小时前
分享一个开源小工具CAdapt
linux·c·gnu·glibc·kernel·升级·灵感
mounter6258 小时前
Linux 内核热升级(Live Update)技术详解:PCI、VFIO 与 IOMMU 子系统的演进与实战解析引言
linux·linux kernel·kernel·iommu·vfio
砚凝霜9 小时前
【软考信息安全】第十九章 Unix/Linux安全分析与防护
linux·安全·unix
creator_Li9 小时前
Linux 的 Page Cache
linux·page cache