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

what is the difference in resolver valid time and resolver_timeout in nginx

我有这个nginx配置入口。

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

在此配置中,有 2 个不同的超时。 nginx documentation 没有让我清楚 validresolver_timeout.[=13 之间有什么区别=]

谁能详细解释一下?

resolve_timeout 设置 NGINX 等待解析器 (DNS) 答复的时间。

valid 标志表示 NGINX 将多长时间将解析器的答案视为有效并且不会在该期间询问解析器。

在您的示例中,假设 NGINX 想要解析 example.com。它会询问解析器 (172.17.42.1),如果解析器在 60 秒内没有回答,NGINX 将失败此请求(并可能向您显示 500 错误)。假设解析器成功回答,那么 NGINX 会记住该回答 10 分钟。如果 NGINX 需要在该时间内解析 example.com,那么它将使用以前的答案而不是再次询问解析器。