Nginx - 一次转发到多个服务器?

Nginx - forwarding to multiple servers at once?

是否可以将 nginx 配置为向 n 个众所周知的位置发送请求并returns 从其中一个位置获得 20x 响应后立即响应?

如果有帮助,我 100% 保证只有一个主机响应,否则根本没有成功响应。

您可以设置一个负载平衡池,在其中删除在一段时间内没有响应的服务器。使用 ip_hash 使用粘性会话,其中相同的 IP 地址返回到同一服务器。如果会话信息未跨服务器共享,则对于维护会话很有用。 nginx 有一个很好的文档 page 和各种选项。

http {
    upstream my_pool {
        ip_hash;
        server 1.2.3.4 weight=3 max_fails=3 fail_timeout=20s;
        server 1.2.3.5 weight=4 max_fails=3 fail_timeout=20s;
        server 1.2.3.6 weight=3 max_fails=3 fail_timeout=20s;
    }

    server {
        listen 80 ;
        server_name domain.org www.domain.org;

        location / {
            proxy_set_header HOST $host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://my_pool;
        }
    }
}