【问题标题】:What does the Resolver param in nginx do?nginx 中的 Resolver 参数有什么作用?
【发布时间】:2017-03-12 20:36:38
【问题描述】:

我使用 nginx 作为带有 ELB 的 reverse_proxy 服务器。我正在寻找有关我在 nginx.conf 文件中设置的解析器值的解释。我的 nginx.conf:

http {  
   ...

   resolver x.x.x.x valid=30s;

   ...
}

server {

   ...

   set $elb "example.com";

location / { 
    ...

    rewrite ^/(.*) $1 break;
    proxy_pass http://$elb/$1?$args; 

    ...
   }
   ...    
}  

我遵循了这个 - https://www.ruby-forum.com/topic/6816375#1166569 并将 /etc/resolv.conf 值设置为解析器值,它工作正常。这背后是什么?

【问题讨论】:

    标签: nginx reverse-proxy resolver


    【解决方案1】:

    需要 nginx 解析器指令,因为系统解析器阻塞。 Nginx 是一个多路复用服务器(一个 OS 进程中有许多连接),因此每次调用系统解析器都会停止处理所有连接,直到收到解析器的答案。这就是 Nginx 实现自己的内部非阻塞解析器的原因。

    如果您的配置文件具有静态 DNS 名称(未生成),并且您不关心在不重新加载 nginx 的情况下跟踪 IP 更改,则不需要 nginx 的解析器。在这种情况下,所有 DNS 名称都将在启动时解析。

    如果你想在运行时解析域名而不需要重新加载 nginx,应该使用 Nginx 的resolver

    【讨论】:

    • 感谢@Terra,我使用的是动态 DNS 名称 (ELB),因此我确实需要跟踪 IP 更改。使用 /etc/resolv.conf 名称服务器值是正确的解决方案吗?
    • 是的,您可以使用任何 DNS 服务器,包括在 resolve.conf 中列出的服务器
    • 好吧,不是“任何”,不要使用公共 DNS。 atm存在一些安全问题。最好使用本地 DNS 解析器。
    • 我们使用解析器只是因为 NGINX 没有它就无法工作。此外,当 DNS 更改时,我们仍然需要重新启动 NGINX。
    【解决方案2】:

    Nginx 解析器指令对于任何依赖 ELB 和 proxy_pass 的 AWS 环境都至关重要。这是我最近写的一篇文章,描述了开源 nginx 对静态 DNS 缓存的问题和解决方案:

    Nginx resolver explained and how to deal with changing IPs

    对于简单的情况,基本上它会归结为以下配置:

    server {
      listen        80;
      server_name   example.com;
    
      location / {
    
        resolver 172.16.0.23;
    
        set $upstream_endpoint http://service-999999.eu-west-2.elb.amazonaws.com;
    
        proxy_pass $upstream_endpoint$request_uri;
      }
    }
    

    【讨论】:

    • 您链接的网页令人讨厌地重定向到一个带有一些带有 Matrix 图片的广告的页面。
    • 这是同一页面上的 JS 弹出框。文本框的右上角有一个关闭按钮。
    • 该链接的可用性很差,以至于损害了此答案的质量。我建议删除链接或替换为可读的内容。
    • 使用解析器指令会对性能产生影响吗?现在每次在有效时间之后,都会进行 DNS 查找。
    • (烦人的)发布链接上的答案似乎主要是从jethrocarr.com/2013/11/02/… 复制的(没有烦人的弹出窗口)
    猜你喜欢
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 2020-04-04
    • 2020-08-24
    相关资源
    最近更新 更多