我做了很多 Web 开发,主要是 RoR 和 PHP,我有一个虚拟机,里面存放着我的开发环境,处理多个客户端是一件很麻烦的事。使用 PHP 时,你只需创建一个子目录,但使用 RoR 时,就有点麻烦了。
我想要做的是创建一个本地 DNS 服务器,将对某个 TLD 的查询重定向到我的虚拟机/服务器。
TLD 看起来就像*.php.dev
是在 php VM 上运行并且mysql.dev
指向 MySQL 服务器等等。
我曾尝试使用本地 BIND 服务器,但真的很麻烦。您有 BIND 的轻量级替代方案吗,最好是基于 ruby/python 的。
我尝试过 RubyDNS,但是 eventmachine 每次都会崩溃。
最后一件事:我在装有 OSX 10.6 的 MacBook Pro 上运行
编辑我尝试了 dnsmasq,但遇到了另一个问题:OSX 有一个绑定守护进程来缓存。我将研究如何禁用它。
答案1
我们用域名系统正是为此。您可以通过编辑配置文件来创建 CNAME 记录,该记录将名称定义为其他真实名称的别名;这真的很容易。
以下是我们在 /etc/dnsmasq.conf 中添加的一些内容:
domain=initech.office
cname=vpn.initech.office,balham
cname=mail.initech.office,bank
cname=cacti.initech.office,victoria
cname=opennms.initech.office,victoria
我们有名为 balham、bank 和 victoria 的机器。我们为 vpn.initech.office 等设置了指向它们的 CNAME。
我们在 Linux 上运行它,但它也可以在 OS X 上运行。
答案2
我是 RubyDNS 的开发人员。根据错误消息,您似乎已经在同一个 UDP 端口上运行了某些程序。此外,您似乎正在使用较旧版本的 RubyDNS。我建议您升级到最新版本。