如果前一个主机不可用或不存在,nginx是否会转到上游块中的下一个主机?
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; }
上游只提供一个服务器列表,以及某种权重。 要告诉Nginx如果其中一个服务器失败了,你需要用memcached_next_upstream来控制它。
来自Nginx的文档 :
memcached_next_upstream
语法 :memcached_next_upstream [error | 超时| invalid_response | not_found | closures]
默认 :错误超时
上下文 :http,服务器,位置
哪个失败情况应该导致请求被转发到另一个上游服务器? 仅当memcached_pass中的值是具有两个或更多服务器的上游时才适用。
如文档中所述,缺省行为是错误/超时,在大多数情况下应该足够了。