【问题标题】:NGINX Upstream servers in orderNGINX 上游服务器按顺序排列
【发布时间】:2017-10-16 01:13:58
【问题描述】:

我有一个 NGINX 代理,后面有 4 个上游服务器,2 个本地服务器,2 个远程服务器,这是为了保持最大的容错能力。 现在我可以让它按照这样的顺序尝试每个服务器

upstream backend {
    server server1;
    server 127.0.0.1:8081 backup;
}

upstream fallback1 {
    server server2;
    server 127.0.0.1:8082 backup;
}

upstream fallback2 {
    server server3;
    server server4 backup;
}

server {
    listen 127.0.0.1:80;
    location / {
        proxy_pass http://backend;
        proxy_next_upstream invalid_header http_500 http_502 http_504 http_403;
    }
}

server {
    listen 127.0.0.1:8081;
    location / {
        proxy_pass http://fallback1;
        proxy_next_upstream invalid_header http_500 http_502 http_504 http_403;
    }
}

server {
    listen 127.0.0.1:8082;
    location / {
        proxy_pass http://fallback2;
        proxy_next_upstream invalid_header http_500 http_502 http_504 http_403;
    }
}

有没有更好的方法来实现这一点?至于到达远程服务器,我第三次循环回服务器,感觉不对。

如果本地服务器有数据,我希望 nginx 避免使用远程服务器,因为这会产生成本。

如果服务器有响应,我也不介意 100% 的请求是否发送到一台服务器。

提前感谢您的帮助!

【问题讨论】:

    标签: nginx proxy backup fallback


    【解决方案1】:

    我建议您将备份和主文件合并到一个合并条目中 - 此外,为了加快后续请求,您可以查看 keepalives。这将防止额外的 TCP 握手开销。

    upstream backend {
        server server1;
        server server2;
        server server3 backup;
        server server4 backup;
        keepalive 25;
    }
    
    
    server {
        listen 127.0.0.1:80;
        location / {
            proxy_set_header Connection "";
            proxy_http_version 1.1; 
            proxy_pass http://backend;
            proxy_next_upstream invalid_header http_500 http_502 http_504 http_403;
        }
    }
    

    在上述配置中,前两台服务器将以循环配置方式尝试,然后将尝试备用服务器。

    我还将探索max_fails and fail_timeout,它可以附加到上游服务器,以处理上游列表中的故障。 Proxy_next_upstream 也可以配置为在“timeout”条件下移动到下一个上游。

    更多关于keepalivesin NGINX documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2011-08-13
      • 2017-03-16
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多