Como o upstream funciona em nginx (memcached_pass)?

2

O nginx vai para o próximo host no bloco upstream, se o host anterior não estiver disponível ou não existir?

upstream cache_cluster {
   127.0.0.1:9000;     //something on this port
   127.0.0.1:11211;   //memcached instance on this port
}

location  {
 //..some code here
 memcached_pass cache_cluster;
 error_page 404 502 504 =  @something;
}
    
por shatzibtten 05.11.2011 / 20:15

1 resposta

2

upstream apenas fornece uma lista de servidores e algum tipo de peso. Para dizer ao Nginx o que fazer se um dos servidores falhar, você precisa controlar isso com memcached_next_upstream.

Na documentação do Nginx :

memcached_next_upstream

syntax: memcached_next_upstream [ error | timeout | invalid_response | not_found | off ]

default: error timeout

context: http, server, location

Which failure conditions should cause the request to be forwarded to another upstream server? Applies only when the value in memcached_pass is an upstream with two or more servers.

Como declarado na documentação, o comportamento padrão é error / timeout, que deve ser suficiente na maioria dos casos.

    
por 06.11.2011 / 00:00