2016-05-24 200 views
2
**NGINX LOad Balancing** 

我试图使用nginx负载平衡我托管在IIS中的服务器。如果我关闭了其中一个应用程序池,nginx应该停止向该服务器发送请求。但是我所看到的nginx将继续向两个服务器发送请求。以下是我的配置。nginx与iis服务器,负载平衡

 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> 
+0

应用程序池不是服务器,如果我没有弄错,这个设置只有在关闭Web服务器上的IIS时才能使用。 –

+0

我的意思是关闭应用程序池。即使我关闭了iis服务器,nginx也会一直返回404状态。理想情况下,它应该取消订阅。 – Jitin

回答

0

,如果我没有错,Nginx的还是继续调用服务器,因为他没有找到一些奇怪的事情... 80端口是可达的,你必须改变检查方法找到一个http error.For例子这一个:https://www.nginx.com/resources/wiki/modules/healthcheck/ ...如果http响应不是200,他认为服务器“坏”,他将其从池中删除。