dns resolver 源码问题

如下配置一个server的location

server {

        listen       8000;

        location / {

            resolver 114.114.114.114;

            set $foo www.baidu.com;

            proxy_pass https://$foo;

        }

}


问题:

1) 如果有多个worker运行,第一个request到了一个worker process 1,第二个同样的request到达了worker process 2. 这样的话worker process 1解析的dns 结果不能被worker process 2同享,意味着worker process 2要进行同样的dns解析动作?

2) nginx中如果每一个location都有自己的resolver, 然后这些resolver只能被发向这一个location的请求使用?有没有办法可以做到一个global的resolver让所有worker process的所有的请求都可以使用?


邀请回答
提问于 2020-11-16 12:22
264 次浏览
共1个回答

发表评论
  • 皮皮鲁
    2020-11-17 21:48

     1)是的。各个worker process单独维护dns resolver结果,不能共享。

    2)是的。各个location可以有自己的resolver。现在还没有一个global的resolver可以多个worker process共享。

    2
    回复
    举报
    • 阿尔巴 2020-11-18 17:23

      感谢回答,对我很有帮助

      0
      回复
      举报
    • 阿尔巴 2020-11-18 17:23

      感谢大佬

      0
      回复
      举报
提问者

云原生

老/白/菜

  • 12

    文章

  • 4

    粉丝

  • 6

    被赞

云原生
按Enter键发送
您已邀请位用户
Copyright 公安部网络安全保卫局 All Rights Reserved
京公网安备 11010502047880号    京ICP备05070602号