debian

Debian系统如何保障Nginx的高可用性

小樊
39
2025-10-01 04:12:41
栏目: 智能运维

1. 安装与配置Nginx基础服务
在Debian系统的所有Nginx节点上执行sudo apt update && sudo apt install nginx完成安装。配置Nginx作为负载均衡器,通过upstream模块定义后端服务器组(支持轮询、加权轮询、IP哈希等策略),并设置反向代理将请求分发至后端。例如:

http {
    upstream backend {
        server 192.168.1.101:80 weight=3;  # 加权轮询,权重越高分配请求越多
        server 192.168.1.102:80 weight=2;
        server 192.168.1.103:80;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

配置完成后通过sudo nginx -t检查语法,再用sudo systemctl reload nginx应用更改。

2. 使用Keepalived实现虚拟IP(VIP)与故障转移
Keepalived通过VRRP协议管理虚拟IP,当主节点故障时自动将VIP切换至备用节点,确保服务连续性。

vrrp_instance VI_1 {
    state MASTER
    interface eth0  # 替换为实际网络接口(如ens33)
    virtual_router_id 51
    priority 100
    advert_int 1    # 心跳间隔(秒)
    authentication {
        auth_type PASS
        auth_pass 1234  # 主备节点需一致
    }
    virtual_ipaddress {
        192.168.1.100/24
    }
}

3. 配置Nginx健康检查
通过健康检查自动剔除故障后端服务器,避免请求发送至不可用节点。Nginx默认支持max_fails(失败次数阈值)和fail_timeout(失败超时时间)参数,无需额外模块:

upstream backend {
    server 192.168.1.101:80 max_fails=3 fail_timeout=30s;  # 3次失败后标记为不可用,30秒后重新尝试
    server 192.168.1.102:80 max_fails=3 fail_timeout=30s;
    server 192.168.1.103:80 max_fails=3 fail_timeout=30s;
}

此配置表示:若某台后端服务器在30秒内连续失败3次,Nginx将停止向其分发请求,30秒后再次尝试恢复。

4. 实现负载均衡提升可用性
通过负载均衡将请求分发至多台Nginx后端服务器,避免单点过载。Nginx支持多种负载均衡算法:

5. 监控与日志保障持续可用性

0
看了该问题的人还看了