教程 nginx tutorial

负载均衡策略

Nginx 负载均衡通过将客户端请求分发到多个后端服务器,提高服务可用性、扩展性和性能。

一、upstream 块配置

nginx
upstream backend {
    server 192.168.1.101;
    server 192.168.1.102;
    server 192.168.1.103;
}

`

在 server/location 块中引用:

nginx
server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend;
    }
}

二、常用负载均衡策略

1. 轮询 (默认)

请求按顺序依次分配给每台服务器。

nginx
upstream backend {
    server 192.168.1.101;
    server 192.168.1.102;
    server 192.168.1.103;
}

2. 权重轮询

根据服务器权重分配请求,性能更强的服务器可以处理更多请求。

nginx
upstream backend {
    server 192.168.1.101 weight=3;
    server 192.168.1.102 weight=1;
}

3. IP 哈希

同一客户端 IP 始终访问同一台服务器,适用于会话保持。

nginx
upstream backend {
    ip_hash;
    server 192.168.1.101;
    server 192.168.1.102;
}

4. 最少连接 (least_conn)

将请求分配给当前连接数最少的服务器,适合请求耗时不均匀的场景。

nginx
upstream backend {
    least_conn;
    server 192.168.1.101;
    server 192.168.1.102;
}

三、优化与健康检查

  1. 健康检查:使用 ngx_http_upstream_module 或第三方模块检测后端健康
  2. 备用服务器:server 192.168.1.104 backup; 当主服务器不可用时接管请求
  3. 连接超时与重试:proxy_connect_timeout, proxy_read_timeout, proxy_next_upstream
  4. 日志分析:记录 upstream 请求状态,优化负载分配

通过合理配置 Nginx 负载均衡策略,可以提高网站高并发访问性能,实现高可用和稳定服务。