阿里云国际站:怎样配置双机热备方案?
本文由【云老大】 TG@yunlaoda360 撰写
环境准备
- 两台服务器 :假设服务器 A 的 IP 地址为 192.168.1.10,服务器 B 的 IP 地址为 192.168.1.11,两台服务器都安装了 CentOS 7 操作系统。
- 安装 Nginx :在两台服务器上都安装 Nginx 作为 Web 服务器。
配置 Nginx
- 服务器 A 和 B :
- 编辑 Nginx 配置文件(一般位于/etc/nginx/nginx.conf),配置相同的站点内容,例如:
- 启动 Nginx 服务,命令为systemctl start nginx。
安装 Keepalived
- 服务器 A 和 B :
- 使用 yum 安装 Keepalived:sudo yum install -y keepalived
配置 Keepalived
- 服务器 A(主节点) :
- 编辑 Keepalived 配置文件(一般位于/etc/keepalived/keepalived.conf),内容如下:
- 配置解释:
- global_defs:定义全局参数,notification_email 和notification_email_from用于设置故障通知的邮箱信息,router_id是虚拟路由器的标识,vrrp_skip_check_adv_param用于跳过某些广告参数的检查,vrrp_garp_interval设置免费 ARP 的间隔时间,vrrp_gna_interval设置发送免费 ARP 的间隔时间。
- vrrp_script:定义一个脚本检查 Nginx 的状态,script指定检查的脚本路径,interval设置检查间隔,weight表示脚本检查失败后的权重变化。
- vrrp_instance:定义虚拟路由器实例,state MASTER表示当前节点是主节点,interface指定绑定的网络接口,virtual_router_id是虚拟路由器的 ID,必须保证唯一性,priority表示节点的优先级,主节点的优先级高于备节点,advert_int是 VRRP 广告间隔,authentication设置认证方式和密码,virtual_ipaddress定义虚拟 IP 地址,客户端将通过这个 IP 访问服务,track_script引用前面定义的脚本检查。
- 服务器 B(备节点) :
- 编辑 Keepalived 配置文件,内容与服务器 A 类似,但state为BACKUP,priority为 90。这样配置后,服务器 B 在正常情况下不会获取虚拟 IP,只有当服务器 A 出现故障时,才会接管虚拟 IP 并提供服务。
启动 Keepalived 服务
- 服务器 A 和 B :
- 启动 Keepalived 服务:systemctl start keepalived
- 设置开机自启:systemctl enable keepalived
测试双机热备
- 在客户端浏览器中访问虚拟 IP(192.168.1.100),正常情况下应该能够看到服务器 A 上 Nginx 返回的页面内容。
- 模拟服务器 A 故障,例如停止 Nginx 服务(systemctl stop nginx)或关闭服务器 A。
- 经过短暂的延迟后,再次访问虚拟 IP,应该能够看到服务器 B 上 Nginx 返回的页面内容,说明双机热备切换成功,服务器 B 接管了虚拟 IP 并继续提供服务。