目录
2.2 安装 Docker 与 Docker Compose
一、架构与原理
1.1 高可用架构设计
-
目标:通过 Keepalived 实现虚拟 IP(VIP)的故障转移,结合 Nginx 的负载均衡能力,确保服务的高可用性和可扩展性。
-
核心组件:
-
Keepalived:基于 VRRP 协议(虚拟路由冗余协议)实现 VIP 的故障转移。
-
Nginx:作为反向代理和负载均衡器,将请求分发到后端服务器。
-
Docker:容器化部署 Nginx,提升环境一致性。
-
1.2 核心原理
-
VRRP 协议:
-
多台服务器组成一个虚拟路由组,共享一个 VIP。
-
主节点(Master)定期发送心跳包(Advertisement),备节点(Backup)监听心跳。
-
若主节点宕机,备节点接管 VIP。
-
-
健康检查:
-
Keepalived 通过自定义脚本(如
nginx_check.sh
)监控服务状态。 -
若检测到 Nginx 容器异常,尝试重启;若重启失败,主动停止 Keepalived 服务,触发 VIP 转移。
-
二、部署步骤详解
2.1 环境准备
-
操作系统:
-
Centos
-
-
服务器:
-
主节点:
192.168.213.3
-
备节点:
192.168.213.4
-
-
VIP:
192.168.213.6/24
-
网络接口:
ens33
(需根据实际网卡名称修改) -
软件版本:
-
Docker 20.10+
-
Docker Compose 2.20+
-
Keepalived 2.0+
-
2.2 安装 Docker 与 Docker Compose
可参考我之前的文章 Docker安装
解释:
-
Docker 提供容器运行时环境,Nginx 运行在容器中,避免环境差异。
-
Docker Compose 用于定义和管理多容器应用,简化部署流程。
2.3 部署 Nginx 容器
-
创建目录结构:
mkdir -p /home/nginx/{conf,html}
-
编写
docker-compose.yml
version: '1' services: nginx: image: nginx-upstream-check:1.25.3 container_name: nginx1.25.3 # 容器名称需与检查脚本一致 ports: - "8000:8000"