Nginx 负载均衡 upstream不精准

nginx upstream 负载均衡一会有用一会失效

nginx入口服务器 (用于分发请求到各个服务器)

server
{
    listen 443 ssl http2;
    server_name xxx.cn;
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    ssl_certificate    /www/server/panel/vhost/cert/xxx.cn/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/xxx.cn/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    error_page 497  https://$host$request_uri;
    #SSL-END

    location / {
        proxy_http_version 1.1;
        proxy_set_header Connection "keep-alive";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://callback.com;
        index index.php;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log off;
        access_log /dev/null; 
    }
    access_log  /dev/null;
    error_log  /www/wwwlogs/zhengnengliang01.cn.error.log;
}

upstream 配置:(共有10台服务器 此处不做过多书写)

  upstream callback.com{
   server a.x.x.x:9001 weight=1;
   server b.x.x.:9001 weight=2;
   ...
   ...
} 

反向代理服务器配置:(a)

server
{
    listen 9001;
    server_name a.x.x.x;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/VideoApp/public;
    include enable-php-74.conf;
    include /www/server/panel/vhost/rewrite/a.x.x.x.conf;
    location / {  
        try_files $uri $uri/ /index.php$is_args$query_string;
      }

其余服务器相同配置相同代码
但是目前反向代理了10台服务器,nginx负载均衡一点也不均衡 经常会出现某一台服务器干爆
而且经过一段时间的观察有某些服务器根本不去负载过去。
各个服务器的接口请求完全正常以排除代码层问题
但是此问题又会出现一整天无法复现的情况,就像人抽风一样无法捕捉。
现在来跪拜各位大佬 有过nginx负载均衡的各位前辈来传授晚辈一点经验

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 5
CrazyLickingDog
upstream 中的服务器全部位ip:9001这种格式

不确定是这个问题,
upstream中填写两台服务器a,b 必定会出现502问题
将a注释留b ok!
将b注释留a ok!
两台同时存在 502!

人都要疯了 这都啥。。。

3天前 评论

复制均衡只是按统计学平均分配流量,如果你各接口耗时负载不一样,那么完全有可能把某些高负载的请求都分配到同一台机器去啊,但是每台机器的最大分配数量应该不会超过upstream的最大连接数啊,设置好最大连接数,别超过最差接口请求下机器最大负载就行了吧,如果接口请求耗时耗负载都一样还超时,大概率是有其他问题

1天前 评论

还有个问题就是php-fpm并发请求数并不能超过最大进程数,也就是upstream的最大连接数最好不要超过php-fpm的最大进程数,如果此时最大连接数进一步超过了php-fpm最大能接受的连接的队列长度应该就会建立不了连接了,应该此时就会连接失败502吧,其他的还有最大打开连接数量也要注意,超过了也无法建立连接也会502吧

1天前 评论
CrazyLickingDog (楼主) 1天前
snower (作者) 1天前
CrazyLickingDog

我现在对这个upstream已经完全不信任了 昨天搞到1点多 今天啥事没干又正常工作了

1天前 评论
惊风破浪 1天前
CrazyLickingDog (作者) (楼主) 1天前

代码有没有特别的操作会影响?可以看看php慢日志 感觉是有的请求特别消耗资源

1天前 评论
CrazyLickingDog (楼主) 1天前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!