在开发局域网上使用Phusion Passenger

时间:2010-11-08 13:02:54

标签: ruby-on-rails apache dns virtualhost passenger

我在开发服务器上设置了phusion乘客。

<VirtualHost *:80>
  ServerName railscasts.local
  DocumentRoot "/Users/rbates/code/railscasts/public"
  RailsEnv development
  RailsAllowModRewrite off
  <directory "/Users/rbates/code/railscasts/public">
    Order allow,deny
    Allow from all
  </directory>
</VirtualHost>

我想从网络上的其他计算机访问我的rails应用程序,但我不想为我想从中访问它的每台计算机配置我的hosts文件。

127.0.0.1 railscasts.local

根据我的理解,我可以设置一个本地DNS服务器来解决问题,但是,我再也不想这样做了。我尝试将ServerName设置为我的开发服务器的IP地址,但这不起作用,它只是默默地失败。

除了DNS服务器或配置LAN上的每台机器之外,还有其它方法可以实现吗?我应该通过指定IP地址来实现吗?

由于

2 个答案:

答案 0 :(得分:1)

您可以在Apache中使用基于IP的虚拟主机,将每个应用程序分配到自己的IP地址,或者使用不同的端口。

我假设您在开发中有多个应用程序,否则更简单的解决方案就是将此虚拟主机设置为默认应用程序。

设置基于IP和/或端口的虚拟主机非常简单。您只需要将[1]侦听到相关的IP /端口,然后根据上面的示例使用VirtualHost容器中的ip.address:端口。

[1] http://httpd.apache.org/docs/current/mod/mpm_common.html#listen

答案 1 :(得分:0)

我一直在研究如何做这几天。我找到了一个很好的起点,但我确信它可以改进。

将vhost的顶部更改为:

Listen 1234
<VirtualHost *:1234>

只要不使用,您就可以使用任何您喜欢的端口号。

您可以通过访问网络上其他计算机的浏览器中的yourcomputername.local:1234来访问您的应用。

<强>注意事项:

这似乎阻止您按照您定义的名称(myapp.local)访问您的应用。我正在考虑你是否可以从同一个虚拟主机中做到这两点。

通过网络访问应用程序可能有更好的方法,例如运行应用程序的计算机上的yourcomputername.local / myapp和myapp.local。

很想听听有关改进此解决方案的建议