A ordem dos servidores na configuração do nginx é importante?

2

Eu tenho uma ferramenta personalizada que gera uma parte da configuração do nginx no seguinte formato, por exemplo:

upstream  backend  {
  ip_hash;
  server server1:8080;
  server server2:8080;
  server localhost:8080 backup;
 }

Ocasionalmente, alguns servidores ficam inativos, alguns sobem e a próxima atualização pode produzir o seguinte:

upstream  backend  {
  ip_hash;
  server server1:8080;
  server server3:8080;
  server server2:8080 down;
  server localhost:8080 backup;
 }

Como você pode ver, server3 apareceu e server2 está marcado. Minha pergunta é a seguinte: o nginx cuida da ordem dos servidores apresentados em config? Preciso classificar a saída da minha ferramenta personalizada?

Neste exemplo, a ordem inicial foi alterada e eu não sei se o nginx vai lidar com isso corretamente.

    
por Illarion Kovalchuk 28.07.2010 / 13:02

1 resposta

2

IIRC, com o método de rotação ip_hash, a ordem é importante. Nginx rouba o ip do cliente e envia os clientes para um dos itens da lista. Se você alterar a ordem, o ip_hash direcionará os clientes para outro nó upstream. De acordo com a recomendação aqui , deixo a lista inteira de servidores em seu arquivo o tempo todo e simplesmente marque-a ' down 'se estiver off-line.

    
por 28.07.2010 / 14:40