在Mac OS上进行开发的本地域名

时间:2013-06-05 08:32:19

标签: ruby-on-rails dns vagrant

我们有几个Rails应用程序在Vagrant框中运行(已经设置了端口转发)。我们如何才能为这些应用程序提供支持子域名的开发域名?

我们不喜欢hosts文件方法,因为:

  • 需要在url(yuk)中指定端口
  • 它需要明确定义您希望使用的所有子域

2 个答案:

答案 0 :(得分:2)

这听起来非常适合Pow。 Pow通常用于直接运行应用程序,但也可以移植代理。此外,它会自动为您处理域(包括通配符子域)。

引用manual

  

2.1.4端口代理

     

Pow的端口代理功能可让您将特定主机名上的所有网络流量路由到计算机上的另一个端口。要使用它,只需在〜/ .pow(而不是符号链接)中创建一个目标端口号作为其内容的文件。

     

例如,要将http://proxiedapp.dev/的所有流量转发到端口8080:

     

$ echo 8080 > ~/.pow/proxiedapp

     

您还可以使用端口代理来访问为其他运行时(例如Python或Node.js)编写的Web应用程序。请记住,代理服务器后面的服务不会像Rack应用程序那样自动启动或停止。

答案 1 :(得分:2)

如果你所有的东西都在一个父域下,你可以用DNS通配符做你想做的事。

*.vagrant.mydomain.com.    CNAME    vagrant.mydomain.com.

您甚至可能希望将上述内容指向一个专用网络地址,您的每个开发人员都将其设置为本地虚拟机设置上的仅主机网络。您可以从Vagrantfile设置网络和主机IP,这样每个人都可以在同一个位置运行他们的开发环境而无需特别的努力,因此可以在开发框外部提供的相同DNS条目适用于所有人。

如果您正在运行Bind9 DNS服务器,那么您可以指定类似下面的内容,以便在每个开发系统上的本地192.168.192.0/24网络上满足一堆流浪盒:

$ORIGIN vagrant.mydomain.com.
$GENERATE 10-99  *.$  A  192.168.192.$

所以例如foo.27.vagrant.mydomain.com将指向192.168.192.27,对于任何foo。

(这里没有经过实际测试的代码。如果需要,请更正。)