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

使用proxy_pass时,可以使用/ etc / hosts来代替parsing器吗?

我需要对同一个nginx机器执行proxy_pass。 有没有办法解决使用机器的/ etc / hosts文件域而不是通过“parsing器”属性指定一个DNS服务器?

这将节省我到达相同的服务器所需的额外的啤酒花。 我已经尝试设置映射到/ etc / hosts文件中的DNS的内部IP,但nginx仍然从parsing器属性中设置的DNS服务器读取。 或者有没有办法让HTTPProxy模块考虑/ etc / hosts文件设置?

感谢您的任何build议,你可以分享..

这是我在nginx论坛发布的同一个问题: http : //forum.nginx.org/read.php?11,218997

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

解决方法是使用Nginx映射,以复制/etc/hosts内容。

 map $wanted_host $wanted_host_ip { default 127.0.0.1; b.dev.local XXXX; a.dev.local XXXX; } server { listen 80; server_name ~^(?P<wanted_port>[0-9]+?)-(?P<wanted_host>.+?)\.HOSTNAME$; location / { proxy_pass http://$wanted_host_ip:$wanted_port; } } 

这将把wanted_host映射到wanted_host_ip ,就像解析器一样。