如何从本地网络上的其他计算机上看到我的apache rails服务器?

时间:2009-11-13 17:15:54

标签: ruby-on-rails apache

我运行了一个apache服务器,运行rails下面有mongrels。我的rails应用程序的apache配置文件如下所示:

<VirtualHost *:80>
  ServerName trunk.production.charanga
  ServerAlias max.trunk.production.charanga

  DocumentRoot /home/max/work/e_learning_resource/trunk/public

  RewriteEngine On

  <Proxy balancer://mongrel1>
    BalancerMember http://127.0.0.1:5010
  </Proxy>

  # Redirect all non-static requests to thin
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
  RewriteRule ^/(.*)$ balancer://mongrel1%{REQUEST_URI} [P,QSA,L]

  ProxyPass / balancer://mongrel1/
  ProxyPassReverse / balancer://mongrel1/
  ProxyPreserveHost on

  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>

  # Custom log file locations
  ErrorLog  /home/max/work/e_learning_resource/trunk/log/error.log
  CustomLog /home/max/work/e_learning_resource/trunk/log/access.log combined

</VirtualHost>

我认为这可以让我从另一台使用max.trunk.production.charanga的计算机访问它,但是我确定了另一步,我无法弄明白。目前,如果我在另一台计算机上的firefox地址栏中键入我的IP地址,我会看到默认的apache服务器(“工作正常!”等),但我无法访问我的rails apache服务器。如果我在这里使用错误的术语,请纠正我...

感谢 最大

5 个答案:

答案 0 :(得分:0)

尝试访问它的计算机需要知道如何将DNS条目max.trunk.production.charanga解析为正确的IP地址192.168.1.42(或者服务器的IP地址)。没有被告知,它无法解决这个问题。

您通常可以通过编辑/etc/hosts并将该地址指向正确的IP地址来告知此信息。只是简单地让Apache识别该名称就不允许其他机器知道如何访问它。

或者,如果您运行本地DNS服务,则可以在那里添加条目。

答案 1 :(得分:0)

编辑主机文件是一种快速简便的解决方案。

添加行

192.168.1.1    trunk.production.charanga max.trunk.production.charanga

它将告诉您的计算机将该ip用于该域。根据您的浏览器(Firefox内部缓存)或您的操作系统(Windows缓存),您可能需要重新启动浏览器或刷新dns缓存。

有关您的hosts文件的更多信息(包括在不同操作系统上找到它的位置),check this wikipedia link.

答案 2 :(得分:0)

我认为这很简单,

我总是喜欢这样。例子。 200.100.10.1:3000 /。我在另一个城市访问我的朋友网络应用程序。

<VirtualHost>
DocumentRoot /htdoc/trunk/ <-- this is my app path. I move my rails app into xampp for exp
ServerName 200.100.10.1:3000
ServerAlias 200.100.10.1
</VirtualHost>

所以如果我没错,我只需输入200.100.10.1来访问他们的应用程序。我希望它有效

答案 3 :(得分:0)

我找到了答案:解决方案是使所需的服务器成为我的IP地址的默认服务器。我这样做是通过更改所需站点的配置文件的顶部(在这种情况下为/ etc / apache2 / sites-available / 001-trunk)

来自这个

<VirtualHost *:80>
  ServerName trunk.charanga
  ServerAlias max.trunk.charanga

  DocumentRoot /home/max/work/e_learning_resource/trunk/public
  ......etc

NameVirtualHost 192.168.0.234:80
<VirtualHost 192.168.0.234:80>
  ServerName trunk.charanga
  ServerAlias max.trunk.charanga

  DocumentRoot /home/max/work/e_learning_resource/trunk/public
  .....etc

其中192.168.0.234是我的网络IP地址。

现在,当其他人在浏览器中输入该IP时,他们会获得我希望他们获取的网站,而不是apache默认网站。

感谢大家的建议!

答案 4 :(得分:0)

输入ip和port就像这样:

127.0.0.0:80/rails

这只有在权限设置为读/写时才有效。