如何在本地网络上托管Ruby on Rails应用程序,以便多人可以访问它?

时间:2012-08-07 03:19:13

标签: ruby-on-rails ruby web localhost

我是RoR的新手,并且拥有相当多的经验。我已经传下了其他人的项目,我需要找到一种方法来托管应用程序,这样人们就可以在本地访问它。该应用程序是一个蜘蛛脚本/步行者脚本/网络刮板,无论你怎么称呼它。基本上它连接到一个网站,登录,每天检索某些数据并将其与之前的数据一起映射。在本地计算机上,您使用它,转到localhost:3000,然后您获得上一个人设计的网页。我只是想知道如何让这个页面公开给我们本地网络上的人,所以他们可以连接到一些任意的IP并看到同一页面(它每天更新)?

我尝试做的是将包含应用程序的文件夹公开到网络,但为了使用它,我必须让网络上的每个人都允许写入它,每个人都必须安装RoR才能使用它。我想避免这种情况,因为它似乎不符合逻辑,也不是我想要做的事情。

查看代码,我可以对其进行逆向工程并了解它的作用,但是当涉及到本地托管Web应用程序或类似的东西时,我以前从未这样做过。请帮忙!

提前致谢!

**编辑 - 这都是在Windows 7机器上完成的。

3 个答案:

答案 0 :(得分:8)

  1. 由于您使用的是Windows,请打开命令行并运行ipconfig以查找您的本地IP。它将列在“IP地址”下。
  2. 告诉您局域网中的人员使用您在步骤1中的IP地址访问http://192.168.x.x:3000替换192.168.x.x.

答案 1 :(得分:0)

编辑:我错过了一个重要的事情,你就是窗户。在Windows上,您可以使用thin并将其置于负载均衡器之后。虽然我建议在UNIX机器上托管它:)

虽然在webrick中运行它(webrick是用于开发的应用程序服务器,即当你运行rails时)将允许其他用户访问网站从不对生产应用程序执行相同的操作。如果要在生产中运行此应用程序,则需要更强大的应用程序服务器,如passenger。我建议你用Apache或Nginx代替独立乘客。一旦完成所有设置,其他人就可以通过输入IP(xx.xx.xx.xx)来使用您的应用程序。您也可以要求系统管理员设置本地DNS,这样您的用户就不必总是记住IP地址。

答案 2 :(得分:0)

说明:

在启动Rails Server时,我们还可以设置一些选项来配置开发环境下站点的IP地址和端口号,以便在本地网络中托管网站。因此,如果我们想将 IP 从 http://127.0.0.1:3000 更改为 http://192.168.x.x:port(x= 0 到 255 中的任意一个数字),我们可以在 Rails 服务器命令中进行设置!但是为此,我们需要在当前网络中找出我们当前的 IP 地址,这将有助于我们在本地网络中为网站提供服务。

所以第一步:

我们将在 PC 上打开终端。对于安卓用户,我们需要打开 Termux 应用程序。然后只需键入 ifconfig 即可获取我们设备在当前网络中的 IP 地址。我们将得到这样的输出(这里我使用 Android 设备进行开发。因此输出可能与您 PC 终端上的输出有所不同,但过程相同):

$ ifconfig
Warning: cannot open /proc/net/dev (Permission denied). Limited output.
lo: flags=XX<UP,LOOPBACK,RUNNING>  mtu XXXXX
    inet 127.0.0.1  netmask 255.XXX.XXX.XXX
    unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen XXXX  (UNSPEC)
wlan0: flags=XXXX<UP,BROADCAST,RUNNING,MULTICAST>  mtu XXXX
    inet 192.168.1.103  netmask 255.XXX.XXX.XXX  broadcast 192.168.1.255
    unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen XXXX  (UNSPEC)

X= some numbers with our device credentials which is dummied with this variable

如果您使用的是 WiFi 路由器,那么我们将需要 wlan0 部分来获取我们的设备 IP。在 wlan0 部分下有一个 inet 子部分显示我们当前的 IP! 是的,我们需要那个IP地址192.168.1.103!这可能因您的设备和网络而异。这是这次任务的关键!现在我们将进入第二个重要步骤。

所以第二步是:

需要输入命令来配置 IP 地址。

rails s -b 192.168.1.103 -p 8080

这里:

  1. rails s 用于 rails 服务器
  2. -b 192.168.1.103 用于出价 IP 地址以根据默认 IP http://127.0.0.1(即我们的本地主机地址)进行自定义。
  3. -p 8080 用于端口设置。 这部分是可选的。默认端口为 3000

这是将 localhost IP (http://127.0.0.1) 更改为本地网络 IP 的过程,该 IP 可供同一网络用户的其他设备使用。

现在我们的 rails 应用程序可以在我们的本地网络中使用了!同一网络中的其他用户也可以在服务器命令运行时访问该网站。如果您还配置了端口号,链接将是 http://192.168.1.103:8080。否则,如果您在没有配置端口的情况下使用了命令 rails s -b 192.168.1.103,则链接将是:http://192.168.1.103:3000

再次重申: 192.168.1.103 是针对我的情况,您的设备的 IP 地址会有所不同。这将需要用于您的服务器和链接地址。