2016-05-24 243 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,他認爲服務器「壞」,他將其從池中刪除。