2010-11-08 55 views
1

我在我的开发服务器上设置了phusion乘客。在开发局域网上使用Phusion Passenger

​​

我想从其他机器访问网络上的我的Rails应用程序,但我宁愿不要有配置我的hosts文件,对每一台机器,我想从访问它。

127.0.0.1 railscasts.local 

从我的理解,我可以设置这将解决这个问题,但是,又一个本地DNS服务器,我不希望有这样做。我尝试将ServerName设置为我的开发服务器的IP地址,但这不起作用,它只是失败了。

有没有办法完成DNS服务器之外的其他工作,或配置LAN上的每台机器?我应该能够通过指定一个IP地址来实现它吗?

感谢

回答

1

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

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

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

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

+0

感谢您的回复noodl,我非常喜欢这个主题的初学者。所以,如果我设置基于IP的虚拟主机,ServerName将被设置为什么?迷惑我的部分是我如何从本地机器到我的apache机器,而不在本地机器上设置hosts文件。谢谢 – pingu 2010-11-09 08:35:45

+0

一般ServerName [1]在服务器需要引用自身时使用。例如,如果您请求http://您的。server/some_folder没有后面的斜线Apache通常会将其重定向到/ some_folder /,以便相关链接可以工作(这是可选的并且会照顾我的mod_dir的DirectorySlash指令)。无论如何,ServerName指令主要用于确定在重定向URL中使用哪个主机名。您可以通过“UseCanonicalName Off”绕过整个问题,在这种情况下,服务器将使用请求中的主机名/ IP,并且ServerName是不相关的。 – noodl 2010-11-09 09:57:27

+0

ServerName:http://httpd.apache.org/docs/current/mod/core.html#servername – noodl 2010-11-09 10:00:36

0

我一直在寻找如何做到这一点了几天。我找到了一个好的起点,但我相信它可以得到改善。

更改您的虚拟主机的顶部:

Listen 1234 
<VirtualHost *:1234> 

你可以使用任何端口号,你喜欢,只要它不是在使用中。

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

注意事项:

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

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

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

相关问题