DukeDuke
主页
文档转换
关于我们
主页
文档转换
关于我们
  • Linux 系统

    • Linux 系统管理
    • Linux 网络管理
    • Linux 文件管理
    • Linux 命令大全
  • Nginx Web 服务器

    • Nginx 安装 与 配置
    • Nginx 负载均衡
    • Nginx SSL证书配置
    • Nginx Keepalived 高可用
  • Docker 容器

    • Docker 简介
    • Docker 安装与配置
    • Docker 命令
    • Docker 部署 Nginx
    • Docker 部署 MySQL
    • Docker 部署 Redis
  • 服务器

    • 塔式服务器
    • 机架式服务器
    • 刀片服务器
  • Git 版本控制
  • Jenkins 持续集成
  • Jmeter 性能测试
  • Let's Encrypt 免费SSL证书

Nginx 负载均衡

1. 负载均衡简介

负载均衡(Load Balancing)是一种将网络流量分配到多个服务器的技术,目的是优化资源使用、最大化吞吐量、最小化响应时间,并避免任何单一服务器的过载。

2. Nginx 负载均衡算法

Nginx 支持以下几种负载均衡算法:

  1. 轮询(Round Robin):默认算法,按顺序将请求分配给服务器
  2. 加权轮询(Weighted Round Robin):根据服务器权重分配请求
  3. IP 哈希(IP Hash):根据客户端 IP 地址分配请求
  4. 最少连接(Least Connections):将请求分配给连接数最少的服务器
  5. URL 哈希(URL Hash):根据请求的 URL 分配请求

3. 基本配置示例

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

    server {
        listen 80;

        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
}

4. 健康检查

Nginx 提供了健康检查功能,可以自动检测后端服务器的状态:

upstream backend {
    server backend1.example.com max_fails=3 fail_timeout=30s;
    server backend2.example.com max_fails=3 fail_timeout=30s;
}

5. 会话保持

5.1 IP Hash 方式

upstream backend {
    ip_hash;
    server backend1.example.com;
    server backend2.example.com;
}

5.2 Cookie 方式

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
    sticky cookie srv_id expires=1h domain=.example.com path=/;
}

6. 最佳实践

  1. 合理设置超时时间

    proxy_connect_timeout 60s;
    proxy_send_timeout 60s;
    proxy_read_timeout 60s;
    
  2. 启用压缩

    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    
  3. 缓存配置

    proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
    

7. 监控和维护

  1. 状态监控

    • 使用 Nginx Plus 或第三方监控工具
    • 配置访问日志和错误日志
    • 设置告警机制
  2. 性能优化

    • 调整工作进程数
    • 配置缓冲区大小
    • 启用 keepalive 连接

8. 常见问题解决

  1. 502 Bad Gateway

    • 检查后端服务器是否正常运行
    • 验证网络连接
    • 检查超时设置
  2. 504 Gateway Timeout

    • 增加超时时间
    • 检查后端服务器性能
    • 优化数据库查询

9. 安全建议

  1. 限制请求频率
  2. 配置 SSL/TLS
  3. 设置适当的访问控制
  4. 定期更新 Nginx 版本

10. 参考资料

  • Nginx 官方文档
  • Nginx 负载均衡指南
最近更新:: 2026/4/17 13:21
Contributors: Duke
Prev
Nginx 安装 与 配置
Next
Nginx SSL证书配置