2
**NGINX LOad Balancing**

我正在尝试使用 nginx 对托管在 IIS 中的服务器进行负载平衡。如果我关闭了其中一个应用程序池,nginx 应该停止向该服务器发送请求。但是我看到 nginx 会继续向两台服务器发送请求。下面是我的配置。

       events {
        worker_connections  2048;
    }


    http {
        include       mime.types;
        default_type  application/octet-stream;

        sendfile        off;
        #tcp_nopush     on;

        keepalive_timeout  0;  

      upstream xxx {

            server xxxxxxx:80 max_fails=1  fail_timeout=30;
            server xxxxxxxx:80 max_fails=1  fail_timeout=30;
        }

        server {
            listen       zzzz;
            server_name  localhost;


            location /yy {

                proxy_cache off;
               proxy_redirect off;
               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_set_header   Host                   $http_host;
               proxy_set_header   X-NginX-Proxy    true;
               proxy_set_header   Connection "";

               proxy_http_version 1.1;      
              proxy_pass    http://xxx;
            }
        }

即使我关闭了应用程序池,Nginx 仍会继续向其他服务器发送请求。

      <HTML>
<HEAD>
    <TITLE>Service Unavailable</TITLE>       
</HEAD>
<BODY>
    <h2>Service Unavailable</h2>
    <hr>
    <p>HTTP Error 503. The service is unavailable.</p>
</BODY>
  </HTML>
4

1 回答 1

0

如果我没记错的话,Nginx 还是会继续调用那个服务器,因为他没有发现什么奇怪的东西……端口 80 是可达的,你必须改变检查方法才能找到一个 http 错误。例如这个:https:// www.nginx.com/resources/wiki/modules/healthcheck/ ...如果 http 响应不是 200,他认为该服务器“坏”并将其从池中删除。

于 2016-09-06T08:06:30.367 回答