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

时间:2016-02-21 12:58:00

标签: nginx reverse-proxy

是否可以按照向n个众所周知的位置发送请求的方式配置nginx,并在从其中一个位置获得20x后立即返回响应?

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

1 个答案:

答案 0 :(得分:1)

您可以设置负载平衡池,其中删除在时间范围内未响应的服务器。使用ip_hash使用粘性会话,其中相同的ip-address返回到同一服务器。如果不在服务器之间共享会话信息,则可用于维护会话。 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;
        }
    }
}