使用proxy_pass时,可以使用/ etc / hosts来解析域名而不是“解析器”吗?

时间:2011-11-29 02:14:13

标签: url-rewriting nginx reverse-proxy

使用 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

2 个答案:

答案 0 :(得分:40)

您可以通过安装dnsmasq并将解析器设置为127.0.0.1来解决此问题。基本上,这会将您的本地DNS用作解析器,但它只会解析它所知道的内容(其中包括/etc/hosts)并将其余内容转发到您的默认DNS。

答案 1 :(得分:5)

解决方法是使用Nginx地图,以便复制wanted_host内容。

wanted_host_ip

这会将{{1}}映射到{{1}},就像解析器一样。