前言
web应用程序可能会为不同的页面提供服务,这取决于浏览器请求的hostname,即使所有主机名都解析为相同的IP address。
示例
例如,在解析为1.2.3.4的https://app.example.com中,用户将找到用户界面,而在同样解析为1.2.3.4的https://admin.example.com中,用户将等待一个仪表板,通过该仪表板,只有应用的所有者可以管理应用中的用户和数据。
我们需要什么
简而言之,我们需要在浏览器中输入http://admin.app:8000/,并将admin.app解析为127.0.0.1。
问题是
如何在我的开发环境中配置自定义主机名到IP地址的解析?
发布于 2015-08-12 06:03:11
(Ubuntu及其衍生工具)配置网络管理器的dnsmasq
Ubuntu Desktop的默认网络配置由NetworkManager和它的从dnsmasq组成。
从dnsmasq监听127.0.1.1,/etc/resolv.conf将其列为唯一的nameserver。
这里有some benefits。
这意味着我们有一个完全可配置的DNS服务器,默认情况下可以轻松地进行配置。
我们可以创建/etc/NetworkManager/dnsmasq.d/hosts.conf,并在其中放入任何我们想要的address语句:
address=/admin.app/127.0.0.1我们甚至可以使用通配符!
address=/.app/127.0.0.1有关详细信息,请参阅dnsmasq documentation (查找--address)。
由于dnsmasq是由network-manager服务启动的,因此我假设以下命令将重新启动它,以便新配置生效:
$ service network-manager restart但是its init-script does not control slave dnsmasq。
因此,必须终止dnsmasq进程,然后使用上面的命令重新启动它。
就是这样!
发布于 2015-07-31 07:39:24
如果在虚拟机中测试
在虚拟机中,127.0.0.1和localhost不会到达主机,而会到达来宾。
例如,在VirtualBox中,默认情况下可以通过10.0.2.2访问主机。因此,来宾虚拟机的hosts文件可能如下所示
10.0.2.2 host
10.0.2.2 app.host
10.0.2.2 admin.host虚拟机内的代理DNS名称服务器
如果要在虚拟机内设置代理DNS名称服务器(可能是为了在Windows中支持通配符),则上游名称服务器通常由主机提供。在VirtualBox中,它是10.0.2.3。
发布于 2015-08-12 05:10:07
(Windows、Linux、OSX)系统范围的主机文件
只需编辑hosts file即可。其位置为depends on the OS。例如:
127.0.0.1 app.localhost
127.0.0.1 admin.localhost在Windows上,您可以使用这个漂亮的开源图形用户界面来编辑主机文件:Hosts File Editor。
通配符
主机文件不支持通配符!
Ubuntu桌面
从Ubuntu12.04开始,Ubuntu桌面附带了一个本地DNS服务器,它可能不尊重主机文件(/etc/hosts)。所以,对于Ubuntu桌面来说,this answer是最好的。
https://stackoverflow.com/questions/31735832
复制相似问题