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切换至备用节点,确保服务连续性。
sudo apt install keepalived。/etc/keepalived/keepalived.conf,设置state MASTER(主节点)、priority 100(优先级高于备用节点,范围1-255)、virtual_router_id 51(同一网络内唯一,1-255)及虚拟IP(如192.168.1.100):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 } } state改为BACKUP,priority设为低于主节点的值(如90),其余配置与主节点一致。sudo systemctl start keepalived && sudo systemctl enable keepalived,通过ip addr show eth0验证虚拟IP是否绑定至主节点。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支持多种负载均衡算法:
weight=3表示权重为3,分配请求的概率更高),适用于服务器性能差异大的场景。5. 监控与日志保障持续可用性
systemctl status nginx和systemctl status keepalived实时查看Nginx与Keepalived的运行状态;通过ip addr show eth0验证虚拟IP是否正常绑定。/var/log/nginx/access.log)与错误日志(/var/log/nginx/error.log)、Keepalived日志(/var/log/syslog),通过工具(如ELK Stack、Prometheus+Grafana)分析请求量、响应时间、故障次数等指标,及时发现异常。