nginx tcp流量转发,本地DNS服务器不生效

nginx tcp流量转发,本地DNS服务器不生效

现在有一个简单需求是通过nginx来进行tcp流量的转发,即nginx监听某端口,当接收到请求时,将流量转发到对应的域名及端口,由于这个域名是时长变化的,需要通过一个本地的DNS进行查询。

但是在配置resolver后,发现nginx并没有去查询本地DNS,仍然是查询了系统的DNS(不是缓存的问题)。如果将系统的DNS服务器改为本地DNS服务器地址,则可以正常转发。

配置如下所示,其实非常简单。

stream {
    resolver 127.0.0.1;
    server {
        listen 8888;
        proxy_pass 1.service.consul:80
    }
}

如上所示,就是要把8888端口的流量转发到1.service.consul所对应的ip上,求各位大佬赐教。

阅读 4k
1 个回答

proxy_pass要使用变量,才会由nginx发起DNS请求
所以先设置一个变量即可

set $consul "1.service.consul";
proxy_pass  $consul:80;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题