nginx balanceamento de carga não negligencia ip nonworking

1

Sou novo no nginx e tenho esse problema que não consigo entender.

Estou usando o nginx como um balanceador de carga para três servidores em nuvem. Essa é a configuração do nginx:

upstream dummyname  {
      server #.#.#.# weight=1;
      server #.#.#.# weight=1;
      server #.#.#.# weight=1;
    }

server {
listen 80;
root /var/www/html;
try_files /maintenance.html $uri $uri/index.html $uri.html @proxy;
server_name localhost;
location @proxy {
proxy_pass  http://dummyname;
}
}

Meu problema apareceu quando eu destruí um deles com seu ip ainda no upstream eu comecei a receber este erro:

ERROR
The requested URL could not be retrieved

The following error was encountered while trying to retrieve the URL: http://dummyname

Unable to determine IP address from host name "dummyname"

The DNS server returned:

Name Error: The domain name does not exist.

This means that the cache was not able to resolve the hostname presented in the URL. Check if the address is correct.

Your cache administrator is webmaster.

Depois de rastrear esse erro, descobri que o problema estava no ip do servidor removido e, se eu removi esse ip do meu upstream, ele funciona bem.

Agora o nginx não deve equilibrar a carga e negligenciar qualquer ips que não funciona ou isso é normal ou eu estou fazendo algo errado? quaisquer referências são muito apreciadas.

Obrigado antecipadamente.

    
por Amr Kamel 10.12.2013 / 16:44

1 resposta

1

Você deve aumentar o valor fail_timeout no bloco upstream, portanto, o servidor com falha será marcado como com falha.

(citação de nginx docs, o negrito é meu) do link

fail_timeout=time sets the time during which the specified number of unsuccessful attempts to communicate with the server should happen to consider the server unavailable; and the period of time the server will be considered unavailable. By default, the parameter is set to 10 seconds.

    
por 10.12.2013 / 17:18