基于 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,备节点自动接管
  • 模拟故障切换成功,高可用验证通过
相关推荐
thinkMoreAndDoMore1 小时前
linux内核匹配I2C设备
linux·运维·服务器
小政同学6 小时前
【NFS故障】共享的文件无法执行
linux·运维·服务器
AI木马人6 小时前
3.【Prompt工程实战】如何设计一个可复用的Prompt系统?(避免每次手写提示词)
linux·服务器·人工智能·深度学习·prompt
ch3nyuyu7 小时前
Ubuntu(乌班图)基础指令
linux·运维·网络
minglie17 小时前
gcc编译器汇总
linux
白菜欣9 小时前
Linux —《开发三件套:gcc/g++、gdb、make/Makefile 全解析》
linux·运维
senijusene9 小时前
基于 imx6ull平台按键驱动开发:input子系统+中断子系统+platform总线
linux·驱动开发
莎士比亚的文学花园9 小时前
Linux驱动开发(1)——系统移植
linux·运维·服务器
PH = 710 小时前
OverlayFS联合文件系统使用示例
java·linux·服务器
AC赳赳老秦10 小时前
OpenClaw进阶技巧:批量修改文件内容、替换关键词,解放双手
java·linux·人工智能·python·算法·测试用例·openclaw