2
**NGINX LOad Balancing**

nginx を使用して、IIS でホストされているサーバーの負荷を分散しようとしています。アプリ プールの 1 つをシャットダウンすると、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 に答える