2012-11-04 10 views
5

Sotto semplice configurazione di nginx per cluster, quindi spengo il server 192.168.1.77:3032.uwsgicluster - nessun live upstream attivo durante la connessione al client upstream

Di tanto in tanto rilevo errore 502 e "nessun aggiornamento live durante la connessione al client upstream" nei registri, mentre "server unix: ///var/tmp/site.sock backup;" funziona e, come suppongo, deve gestire la richiesta ma nginx non lo trova come live. Quale potrebbe essere il problema?

nginx config:

 upstream uwsgicluster { 
      server 192.168.1.77:3032; 
      server unix:///var/tmp/site.sock backup; 
     } 


server { 
    listen  80; 
    server_name site.com www.site.com; 
    access_log /var/log/nginx/sire.log; 
    error_log /var/log/nginx/site-error.log; 


    location/{ 
      uwsgi_pass uwsgicluster; 
      include  uwsgi_params; 
     } 
} 

Se rimuovo 192.168.1.77:3032 assistente da monte e riavviare nginx funziona benissimo, ma con errori del server 192.168.1.77:3032 spenti si verifica periodicamente

+0

Il server remoto a monte è sempre disponibile? – RickyA

+0

Ciò che l'edificio è effettivamente un bilanciatore del carico. Per quanto riguarda la configurazione dei server delle applicazioni con uwsgi e nginx su di essi e quindi creare questo server loadbalancing che solo il lavoro deve passare le richieste http 80 ai server delle app (non le richieste uwgi). – RickyA

+1

Anche questo hotswapping sul bilanciamento del carico sembra il modo perfetto per arrestare il server di bilanciamento del carico quando i server in rovina si guastano. Utilizzare un hotswap remoto. – RickyA

risposta

1

Penso che nginx proverà ancora entrambi i server nel blocco upstream anche se uno non funziona. Quando non riesce a connettersi a uno di essi, proverà l'altro, ma continuerà a registrare l'errore che si sta vedendo.

Per impostazione predefinita, l'impostazione proxy_next_upstream proverà il successivo server upstream in caso di errore o timeout. È possibile ignorare questa:

http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream

Stai solo vedendo log di errore, o siete anche vedere un comportamento indesiderato/bilanciamento del carico?