如何在服务器上设置我的 Sinatra REST API?

How do I go about setting up my Sinatra REST API on a server?

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

这是我感到力不从心的地方。我在 DigitalOcean 设置了一个 Ubuntu droplet,并摸索着通过命令行设置所有必要的工具,直到我可以再次 运行 我的服务器,现在在这个 droplet 上。

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

我在这里有点头疼,感觉不舒服。必须有比我这样做更好的方法让我在服务器上获取我的一小部分 ruby 文件和 运行 文件。但是我不知道我在做什么。

如有任何帮助或建议,我们将不胜感激。

bit of research lead me to discovering I need Passenger and an Apache HTTP Server to be setup, and not with simple instructions.

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

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

完成这项工作后,下一步就是将您的 Sinatra 应用程序变成一项服务。从本质上讲,这意味着应用程序 运行 在后台运行,而在系统重启时 auto-starts 。查看 Supervisor 这是一个非常简单的配置来获得这个 运行ning.

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