使用 proxy_pass 时,可以使用 / etc / hosts 代替解析器吗?
我需要对同一个nginx机器执行proxy_pass。有没有办法使用机器的/ etc / hosts文件解析域,而不是通过“解析器”属性指定DNS服务器?
这将为我节省到达同一服务器所需的额外跃点。我已经尝试在/ etc / hosts文件中设置映射到DNS的内部IP,但是nginx仍在从解析器属性中设置的DNS服务器中读取。或者有没有办法让HTTPProxy模块考虑/ etc / hosts文件设置?
感谢您提供任何可以分享的建议..
这是我在nginx论坛上发布的同一个问题: http://forum.nginx.org/read.php?11,218997
答案 0 :(得分:40)
您可以通过安装dnsmasq
并将解析器设置为127.0.0.1
来解决此问题。基本上,这会将您的本地DNS用作解析器,但它只会解析它所知道的内容(其中包括/etc/hosts
)并将其余内容转发到您的默认DNS。
答案 1 :(得分:5)
解决方法是使用Nginx地图,以便复制wanted_host
内容。
wanted_host_ip
这会将{{1}}映射到{{1}},就像解析器一样。