1

我在我的开发服务器上设置了 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 应用程序,但我不想为每台我想访问它的机器配置我的主机文件。

127.0.0.1 railscasts.local

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

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

谢谢

4

2 回答 2

1

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

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

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

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

于 2010-11-08T18:05:12.660 回答
0

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

将 vhost 的顶部更改为:

Listen 1234
<VirtualHost *:1234>

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

yourcomputername.local:1234您可以通过在网络上另一台计算机的浏览器中访问来访问您的应用程序。

注意事项:

这似乎会阻止您以您定义的名称 (myapp.local) 访问您的应用程序。我正在研究您是否可以从同一个虚拟主机中同时执行这两项操作。

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

希望听到有关改进此解决方案的建议

于 2011-03-02T19:31:23.350 回答