在nginx中解析器有效时间和resolver_timeout的区别是什么

时间:2015-02-19 12:40:42

标签: nginx

我有这个nginx配置条目。

http {
  resolver 172.17.42.1 valid=600s;
  resolver_timeout 60s;

在此配置中有两个不同的超时。 nginx documentation并未向我说明有效 resolver_timeout 之间的区别。

有人可以详细解释一下吗?

1 个答案:

答案 0 :(得分:5)

resolve_timeout设置nginx等待来自解析器(DNS)的anwser的时间。

valid标志表示nginx会将解析器的答案视为有效,并且不会在该期间内请求解析器。

在您的示例中,假设nginx想要解析example.com。它将询问解析器(172.17.42.1),如果解析器在5秒内没有回答,nginx将使该请求失败(并且可能显示500错误)。让我们说解析器成功回答,然后nginx会记住这个答案10分钟。如果nginx需要在该时间内解析example.com,那么它将使用先前的答案,而不是再次询问解析器。