主题
高可用 Nginx 集群
为保证 Web 服务高可用性,可使用 Nginx 集群结合负载均衡和故障切换实现无单点故障。
一、主从架构与负载均衡
- 多台 Nginx 节点组成集群
- 使用 upstream 块分配请求到不同节点
nginx
upstream backend_servers {
least_conn;
server 192.168.1.101;
server 192.168.1.102;
}- least_conn:将请求分配给连接数最少的节点
- 可根据需求使用
round-robin或ip_hash
二、Keepalived 配置
- 配合 Keepalived 实现 VIP(虚拟 IP)故障切换
bash
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
virtual_ipaddress {
192.168.1.100
}
}- MASTER 节点故障时,BACKUP 节点接管 VIP
- 确保访问请求不中断
三、健康检查与故障转移
- 配置
proxy_next_upstream自动切换故障节点
nginx
location / {
proxy_pass http://backend_servers;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
}- 支持错误自动切换,提高集群可靠性
四、性能与优化建议
- 使用缓存和 Gzip 减少后端压力
- 配置 Keep-Alive 提升连接复用率
- 定期监控节点状态,确保服务健康
- 配合监控工具(如 Prometheus、Grafana)观察集群指标
通过搭建高可用 Nginx 集群,可以实现 Web 服务的稳定、高可用和负载均衡,防止单点故障。