如何同时在 localhost 和 web 上运行 Ruby 项目?

Posted

技术标签:

【中文标题】如何同时在 localhost 和 web 上运行 Ruby 项目?【英文标题】:How to run a Ruby project on localhost and web simultaneously? 【发布时间】:2012-04-17 10:32:32 【问题描述】:

我目前正在使用 Ruby on Rails 开发 Web 服务。我希望同时在 LAN 和 Web 上运行它?怎么办?

【问题讨论】:

只要确保您的服务器接受来自外部网络和局域网的请求。 Rails 应用程序不应该关心请求的来源。 【参考方案1】:

如果您的意思是“我怎样才能使我的本地网络服务器也可以从普通互联网访问”,那么简单的入门方法是建立一个从合适的远程主机(例如 VPS 或其他服务器)到您的 SSH 隧道本地机器。

您需要确保您的sshd 配置允许打开隧道端口,因为默认情况下这些端口是受限制的。

【讨论】:

您能否详细说明如何从 Internet 调用我的本地主机?它是怎么做的?【参考方案2】:

要么允许通过 LAN 和 Internet 访问服务器,要么设置两个指向同一数据库的服务器。 Rails 无论如何都会启动多个实例,因此您不会有损坏的数据。

【讨论】:

您是说我应该将它部署在 haraku 以及我的局域网服务器上?怎么办? 是的。您只需将您的 Rails 应用程序签出到两台服务器。然后您允许从远程客户端访问您的数据库。然后相应地更改 database.yml。在 haraku 上,它将是本地计算机上的 localhost,您需要指定 IP 或域。如果你不确定它是如何完成的,你应该搜索一个howto。【参考方案3】:

我假设

您希望向 Internet 上的人演示在本地计算机上运行的产品。

您正在尝试测试 Paypal IPN 通知。

1) 安装proxylocal gem

gem install proxylocal

2) 在开发模式下运行您的 Rails 服务器。

3) 本地运行代理

$ proxylocal 3000 --host joshi_server
Local server on port 3000 is now publicly available via:
http://joshi_server.t.proxylocal.com/

现在,您可以通过网络使用http://joshi_server.t.proxylocal.com/ 访问您的本地服务器。

注意

类似服务

免费 : localtunnel, pagekite, yaler,

付费:showoff.io

我发现proxylocallocaltunnelshowoff 在易用性和可靠性方面是相似的。我更喜欢proxylocal,因为它允许我为本地服务器命名和重用子域。

请勿将此方法用于生产设置

【讨论】:

实际上我正在开发一个内部网系统,它将在我们学院的服务器上运行。但我想确保用户也应该能够在家中通过互联网访问它。 你为什么不使用像 Heroku 这样的服务呢?您可以在任何地方访问服务器,并且可以毫不费力地启动和运行服务。

以上是关于如何同时在 localhost 和 web 上运行 Ruby 项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 PHP 项目设置为 Webhosting 和 Localhost 以同时在线和离线工作

通过 https 加载的网页如何连接到在 localhost 上运行的 WebSocket 服务器?

如何使用 Apache Web 服务器在 localhost 上配置 Ion cube 许可证

如何在 xampp 中运行两个本地 Web 开发项目

从另一台计算机连接到在 Amazon EC2 上的 localhost 上运行的 Web 应用程序

Rails 应用程序在 localhost 上运行,但每当我检查 Web 浏览器时都会被拒绝连接