在现代互联网应用中,Web服务器的稳定性至关重要。一旦Nginx宕机,整个网站或服务就可能无法访问。为了防止这种情况发生,我们可以通过搭建Nginx高可用集群来实现故障自动切换,确保服务持续在线。本教程将从零开始,带你一步步搭建一个基于Keepalived的Nginx高可用方案,即使你是小白也能轻松上手!
Nginx高可用是指通过部署多台Nginx服务器,并配合高可用软件(如Keepalived),当主服务器出现故障时,备用服务器能自动接管服务,用户几乎无感知地继续访问网站。这种架构广泛应用于电商、金融等对稳定性要求极高的场景。
在两台服务器上分别执行以下命令安装Nginx:
sudo yum install -y epel-releasesudo yum install -y nginxsudo systemctl start nginxsudo systemctl enable nginx Keepalived是实现高可用的核心组件,它通过VRRP协议管理虚拟IP的漂移。
在两台服务器上安装Keepalived:
sudo yum install -y keepalived 编辑配置文件 /etc/keepalived/keepalived.conf:
global_defs { router_id NGINX_MASTER}vrrp_script chk_nginx { script "/etc/keepalived/check_nginx.sh" interval 2 weight -5 fall 2 rise 1}vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.1.100/24 } track_script { chk_nginx }} 配置类似,但需修改 state 为 BACKUP,priority 设为较低值(如90):
vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 90 ...} 在两台服务器上创建 /etc/keepalived/check_nginx.sh 脚本:
#!/bin/bashif ! pgrep -x nginx > /dev/null; then systemctl start nginx sleep 2 if ! pgrep -x nginx > /dev/null; then exit 1 fifiexit 0 赋予执行权限:
chmod +x /etc/keepalived/check_nginx.sh 在两台服务器上启动Keepalived:
sudo systemctl start keepalivedsudo systemctl enable keepalived 此时,虚拟IP(192.168.1.100)应绑定在主服务器上。你可以通过 ip addr show 查看。
测试方法:停止主服务器上的Nginx,观察虚拟IP是否自动漂移到备用服务器。这体现了Web服务高可用的核心价值。
1. 确保防火墙允许VRRP协议(协议号112)通信。
2. 虚拟IP必须与服务器在同一网段。
3. 可结合Nginx负载均衡,后端挂多个应用服务器,实现更完整的高可用架构。
通过本文的详细步骤,你已经成功搭建了一个具备自动故障转移能力的Nginx高可用集群。无论主服务器因何种原因宕机,备用服务器都能无缝接管,极大提升了系统的可靠性。掌握Keepalived配置技巧,是你迈向运维高手的重要一步!
关键词回顾:Nginx高可用、Nginx负载均衡、Keepalived配置、Web服务高可用
本文由主机测评网于2025-11-30发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025111523.html