教程 nginx tutorial

高可用 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;
}
  • 支持错误自动切换,提高集群可靠性

四、性能与优化建议

  1. 使用缓存和 Gzip 减少后端压力
  2. 配置 Keep-Alive 提升连接复用率
  3. 定期监控节点状态,确保服务健康
  4. 配合监控工具(如 Prometheus、Grafana)观察集群指标

通过搭建高可用 Nginx 集群,可以实现 Web 服务的稳定、高可用和负载均衡,防止单点故障。