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上,求各位大佬赐教。
proxy_pass
要使用变量,才会由nginx发起DNS请求所以先设置一个变量即可