我有这个nginx配置条目。
http {
resolver 172.17.42.1 valid=600s;
resolver_timeout 60s;
在此配置中有两个不同的超时。 nginx documentation并未向我说明有效与 resolver_timeout 之间的区别。
有人可以详细解释一下吗?
答案 0 :(得分:5)
resolve_timeout
设置nginx等待来自解析器(DNS)的anwser的时间。
valid
标志表示nginx会将解析器的答案视为有效,并且不会在该期间内请求解析器。
在您的示例中,假设nginx想要解析example.com
。它将询问解析器(172.17.42.1),如果解析器在5秒内没有回答,nginx将使该请求失败(并且可能显示500错误)。让我们说解析器成功回答,然后nginx会记住这个答案10分钟。如果nginx需要在该时间内解析example.com
,那么它将使用先前的答案,而不是再次询问解析器。