1. 高可用Web集群架构概述
在当今互联网服务中,高可用性已成为基础需求。一个典型的Web集群需要解决三个核心问题:如何应对单点故障、如何实现流量均衡分发、如何保证数据一致性。本实验构建的Keepalived+LVS+Nginx+NFS+DNS架构正是针对这些问题的完整解决方案。
这套架构的核心优势在于:
- 四层+七层双重负载:LVS实现高性能四层负载均衡,Nginx提供灵活的七层处理能力
- 无缝故障转移:Keepalived确保VIP自动漂移,实现秒级切换
- 统一数据视图:NFS共享存储保证所有Web节点数据一致
- 域名解耦:DNS层隐藏后端架构细节,便于运维调整
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 实验环境规划与准备
2.1 硬件资源配置建议
对于学习环境,建议采用以下配置:
- CPU:每虚拟机至少2核(LVS节点建议4核)
- 内存:Web节点2GB,LVS节点1GB,存储节点4GB
- 磁盘:系统盘20GB,NFS节点额外挂载50GB数据盘
- 网络:所有节点使用桥接模式,确保同网段互通
生产环境注意事项:
- 物理服务器建议万兆网络互联
- NFS存储应使用RAID10阵列
- 建议为LVS节点配置多网卡(业务与管理分离)
2.2 系统初始化配置
基础环境配置是后续工作的基石,需要特别注意以下要点:
主机名与网络配置
bash复制# 设置永久主机名(以client节点为例)
hostnamectl set-hostname client && exec bash
# 网络配置模板(适配RHEL9/CentOS9)
nmcli connection modify ens160 \
ipv4.method manual \
ipv4.addresses 192.168.70.115/24 \
ipv4.gateway 192.168.70.2 \
ipv4.dns "223.5.5.5 8.8.8.8" \
connection.autoconnect yes
nmcli connection up ens160
安全策略调整
bash复制# 临时关闭SELinux(实验环境推荐)
setenforce 0
# 防火墙放行必要服务(生产环境应精确配置)
firewall-cmd --permanent --add-service={http,https,nfs,dns}
firewall-cmd --reload
系统优化参数
bash复制# 增加文件描述符限制
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf
# 内核参数优化(所有节点)
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 1024 65000
net.core.somaxconn = 32768
EOF
sysctl -p
3. 核心组件部署详解
3.1 NFS共享存储部署
NFS服务器是保证数据一致性的关键节点,部署时需特别注意:
存储规划建议
- 创建独立的逻辑卷作为共享存储
- 为不同服务建立隔离的挂载点
bash复制# 创建逻辑卷(假设已有VG名为vg_data)
lvcreate -n lv_web -L 20G vg_data
mkfs.xfs /dev/vg_data/lv_web
mkdir -p /data/web
mount /dev/vg_data/lv_web /data/web
精细化权限控制
bash复制# 创建专用用户组
groupadd -g 2000 webadmin
useradd -u 2001 -g webadmin webuser
# 目录结构规划
mkdir -p /data/web/{html,logs,config}
chown -R webuser:webadmin /data/web
chmod 2775 /data/web # 设置SGID保持组权限
NFS服务高级配置
bash复制# 安装必要组件
dnf install nfs-utils rpcbind -y
# 精细化的exports配置
cat > /etc/exp
