如果前一个主机不可用或不存在,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;
}
答案1
上游仅提供服务器列表和某种权重。要告诉 Nginx 如果某个服务器发生故障该做什么,您需要使用 memcached_next_upstream 进行控制。
来自Nginx 文档:
memcached_next_upstream
句法:memcached_next_upstream [错误 | 超时 | invalid_response | not_found | 关闭]
默认:错误超时
语境:http,服务器,位置
哪些故障情况会导致请求被转发到另一个上游服务器?仅当 memcached_pass 中的值是具有两个或更多服务器的上游时才适用。
正如文档中所述,默认行为是错误/超时,在大多数情况下这应该足够了。