明天的明天 永远的永远 未知的一切 我与你一起承担 ??

是非成败转头空 青山依旧在 几度夕阳红 。。。
  博客园  :: 首页  :: 管理

Nginx 单机多实例负载均衡

Posted on 2025-10-15 09:35  且行且思  阅读(5)  评论(0)    收藏  举报

我有二个jar包的API端口,8011和8012,请实现完整的单台二个端口负载。

以下是完整的单台双端口负载均衡配置:

http {
    # API服务负载均衡组
    upstream api-backend {
        server localhost:8011 weight=1 max_fails=3 fail_timeout=30s;
        server localhost:8012 weight=1 max_fails=3 fail_timeout=30s;
        
        # 负载均衡策略
        least_conn;          # 最少连接数
        
        # 连接池优化
        keepalive 32;
        keepalive_requests 100;
        keepalive_timeout 60s;
    }

    server {
        listen 80;
        server_name localhost;

        # API代理配置
        location /api/ {
            proxy_pass http://api-backend/;
            
            # 代理头设置
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            
            # 超时设置
            proxy_connect_timeout 5s;
            proxy_send_timeout 60s;
            proxy_read_timeout 60s;
            
            # 缓冲设置
            proxy_buffering on;
            proxy_buffer_size 4k;
            proxy_buffers 8 4k;
            
            # 重试设置
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
            proxy_next_upstream_tries 2;
            proxy_next_upstream_timeout 3s;
        }
    }
}

 

关键配置说明

负载均衡参数

  •  weight=1:权重相等,平均分配 

  •  max_fails=3:3次失败后标记不可用 

  •  fail_timeout=30s:30秒后重新尝试 

  •  least_conn:优先分配给连接数少的服务器 

性能优化

  •  keepalive 32:保持32个长连接 

  •  proxy_next_upstream:自动故障转移