如何在我的系统中为Web开发配置自定义主机名到IP解析

时间:2015-07-30 23:39:24

标签: development-environment hosts

前言

可以使用网络应用 提供不同的页面, 取决于 hostname 这是浏览器要求的, 即使所有主机名都已解决 同样的 IP address

实施例

例如,在 https://app.example.com, 哪个解决了 1.2.3.4, 用户将找到用户界面 并在 https://admin.example.com, 这也解决了 1.2.3.4, 等待仪表板 通过这 只有应用程序的所有者才可以 管理用户和数据 在应用程序中。

我们需要什么

简而言之, 我们需要进入, 例如, http://admin.app:8000/ 在我们的浏览器中 并让admin.app解析为127.0.0.1

问题

我该如何配置 自定义主机名到IP地址解析 在我的开发环境中?

6 个答案:

答案 0 :(得分:1)

(Ubuntu和Derivatives)配置NetworkManager' s dnsmasq

Ubuntu Desktop的默认网络配置是 由NetworkManager及其从属dnsmasq组成。

奴隶dnsmasq127.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进程 上面的命令会让它重新开始。

就是这样!

答案 1 :(得分:0)

如果在虚拟机中测试

在虚拟机中 127.0.0.1localhost 不会到达主持人, 但客人。

例如,在VirtualBox中, 默认情况下,可以访问主机 在10.0.2.2。 因此,来宾VM的主机文件看起来像

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

答案 2 :(得分:0)

(Windows,Linux,OSX)系统范围主机文件

只需编辑 hosts file。 它的位置 depends on the OS。 例如:

127.0.0.1    app.localhost
127.0.0.1    admin.localhost

在Windows上,您可以使用 这个漂亮的开源GUI 用于编辑hosts文件: Hosts File Editor

通配符

hosts文件不支持通配符!

Ubuntu桌面

自Ubuntu 12.04以来, Ubuntu桌面附带 本地DNS服务器, 这可能不尊重 hosts文件(/etc/hosts)。 因此,对于Ubuntu桌面,this answer 是最好的。

答案 3 :(得分:0)

(Linux)用户特定HOSTALIASES文件

非常有限

这是我的首选答案 因为 它避免了 改变系统配置。

可是:

它是什么

这是user specific host aliases file。 请注意,格式与hosts文件不同。

简而言之,您创建了一个文件 其中包含主机别名。

例如

foo    localhost
bar    localhost

并将其放在~/.hosts

然后设置环境变量 HOSTALIASES 使用别名文件的路径。 所以,对于这个例子

$ export HOSTALIASES=~/.hosts

答案 4 :(得分:0)

(Windows)配置丙烯酸DNS服务器

Acrylic DNS Proxy易于安装和配置。

它可以帮助我们在Windows中快速获取带别名的主机名。

它是开源的。

  1. 安装它。
  2. 打开hosts文件(通过开始菜单条目)。
  3. 输入一些条目,例如1.2.3.4 >app
  4. 清除缓存并重新启动(通过开始菜单项)。
  5. Set your DNS server127.0.0.1

答案 5 :(得分:0)

(GNU / Linux)的

由于所有主要发行版都在迁移(或已经发生)到systemd堆栈,因此实现通配符支持的正确位置将由systemd解析:有关详细信息,请参阅https://github.com/systemd/systemd/issues/766

这也是为DNS设置自定义覆盖的地方。

至于Windows - 它的VM应该只从主机获取DNS:无论如何都要冒险在裸机上运行它。