【问题标题】:How do I go about setting up my Sinatra REST API on a server?如何在服务器上设置我的 Sinatra REST API?
【发布时间】:2016-04-10 10:25:26
【问题描述】:

我主要是一名 iOS 开发人员。在构建我当前的应用程序时,我需要一个服务器,它有一个带有几个 GET 请求的 REST API。我花了一点时间学习 Ruby,并开始使用 Sinatra,一个简单的 Web 框架。我可以运行我的服务器脚本,并通过浏览器在localhost:4567 访问它,请求然后是localhost:4567/hello,例如。

这就是我无法理解的地方。我在 DigitalOcean 上设置了一个 Ubuntu droplet,并通过命令行设置了所有必要的工具,直到我可以再次运行我的服务器,现在在这个 droplet 上。

然后的问题是我无法通过droplet.ip.address:4567 访问我的服务器,我通过一些研究发现我需要设置Passenger 和一个Apache HTTP 服务器,以及not with simple instructions

我在这里有点过头了,我感觉不舒服。我必须有更好的方法来获取我的一小部分 ruby​​ 文件并在服务器上运行它,而不是我这样做。但我不知道我在做什么。

任何帮助或建议将不胜感激。

【问题讨论】:

  • 您是否尝试过使用 -o 0.0.0.0 启动 sinatra 应用程序(如 ruby​​ test.rb -o 0.0.0.0)?这会将其绑定到机器的 IP 地址,并且应该允许通过 :4567 进行访问

标签: ruby apache rest server sinatra


【解决方案1】:

一些研究让我发现我需要设置Passenger 和一个Apache HTTP 服务器,而不是简单的说明。

暂时忽略它。首先采取婴儿步骤。您应该能够从 DigitalOcean 液滴上的命令行运行您的 Sinatra 应用程序,然后通过 droplet.ip.address:4567 访问它。如果这不起作用,那么一些非常根本的问题就是错误的。

当您启动应用程序时,您将看到应用程序正在侦听的地址和端口。确保它是 0.0.0.0 和 4567。如果是 127.0.0.1localhost,这意味着它只会服务来自同一台机器的请求

完成这项工作后,下一步是将您的 Sinatra 应用程序变为服务。本质上,这意味着应用程序在后台运行,并在系统重新启动时自动启动。查看Supervisor,这是运行此程序的非常简单的配置。

稍后您可以安装 Apache 或 Nginx 以放在您的 Sinatra 应用程序前面。这些代理只是将请求从端口 80(默认 HTTP 端口)转发到您的 sinatra 应用程序,但可以执行其他操作,例如添加 SSL 支持、负载平衡、自定义错误页面等 - 您现在不需要所有这些。

【讨论】:

    猜你喜欢
    • 2016-03-02
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 2012-08-18
    • 2016-07-29
    • 2019-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多