在 OS X 上将 *.local 主机通配符转换为 Apache

在 OS X 上将 *.local 主机通配符转换为 Apache

我想将所有 *.local 或 *.dev 域路由到特定 IP,可以是 Ubuntu VM 的 IP 或本地主机。这可能吗?我可以使用 /etc/hosts 文件吗?

我在 VMware Fusion 3 上运行 Mac OS X Snow Leopard 和 Ubuntu Hardy Heron LTS - JeOS。

现在我只是不断地为每个域名创建 /etc/hosts 记录,我宁愿它像通配符 DNS 一样,让 Apache 处理域名,而不是每次都手动输入。我喜欢在做了一些奇怪的事情或有人给我一个奇怪的请求时灵活地更新它,但我认为其中 90% 最好是自动化的。

答案1

不幸的是,您无法将通配符条目添加到 /etc/hosts 文件。话虽如此本文演示了一种适用于 Tiger 的方法。虽然我认为 launchctl 从 leopard 开始就被弃用了,但它可能仍然有效。

答案2

在 apache 配置中设置通配符响应很简单,但 apache 与您的本地名称解析无关 - 它只接受交给它的连接,因此由网络堆栈首先将连接引导到正确的方向。

据我所知,这意味着您需要在网络/机器上运行本地 DNS 服务器,或者需要在 /etc/hosts 中为每个开发域添加条目。

答案3

运行类似 dnsmasq 的程序,它将允许您添加一些自定义 DNS 条目,但将其他所有内容转发到您的普通 DNS 服务器。

答案4

我们在 Linux 机器上设置了 BIND DNS 服务器,将 *.dev TLD 指向 Apache 机器。我们通过 DHCP 将此 DNS 服务器通告给所有 LAN 客户端,因此所有请求都会通过此服务器并能解析 .dev。

在 Apache 配置中,我们使用所谓的大规模虚拟主机,以避免必须为每个新站点编辑配置。这样,我们只需创建一个具有正确命名约定的新目录,它就会被找到。

相关内容