参考资料

  1. 如何识别Nginx遇到攻击时如何快速响应?
  2. Nginxrewrite重定向配置详解
  3. Nginx监控工具(Prometheus)配置详细说明以及案例
  4. Nginx基础安全设置及示例
  5. 如何查看要查看 Nginx 默认配置文件路径
  6. Nginx在Web开发中的应用
  7. Nginx的启动与停止命令
  8. 如何监控Nginx的keepalive连接状态?

Nginx在负载均衡中的角色

Nginx在负载均衡中的角色配置示例:

  1. 基本负载均衡配置

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
    }

    server {
        location / {
            proxy_pass http://backend;
        }
    }
}
  1. 负载均衡算法配置

  • 轮询(默认):

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
}
  • 加权轮询:

upstream backend {
    server backend1.example.com weight=3;
    server backend2.example.com weight=1;
}
  • IP哈希:

upstream backend {
    ip_hash;
    server backend1.example.com;
    server backend2.example.com;
}
  • 最少连接:

upstream backend {
    least_conn;
    server backend1.example.com;
    server backend2.example.com;
}
  1. 健康检查配置

upstream backend {
    server backend1.example.com max_fails=3 fail_timeout=30s;
    server backend2.example.com max_fails=3 fail_timeout=30s;
}
  1. 备份服务器配置

upstream backend {
    server backend1.example.com;
    server backend2.example.com backup;
}
  1. 完整示例配置

http {
    upstream myapp {
        least_conn;
        server 10.0.0.1:8080 weight=2;
        server 10.0.0.2:8080;
        server 10.0.0.3:8080 backup;
    }

    server {
        listen 80;
        
        location / {
            proxy_pass http://myapp;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
}