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

时间:2016-01-06 10:51:13

标签: ruby apache rest server sinatra

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

这是我感受到的深度。我在DigitalOcean设置了一个Ubuntu Droplet,并且通过命令行设置了所有必要的工具,直到我可以再次运行我的服务器,现在在这个Droplet上。

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

我在这里过得很开心,我感觉不舒服。我必须有一个更好的方法来获取我的一小组ruby文件并在服务器上运行它,而不是我这样做。但我不知道我在做什么。

非常感谢任何帮助或建议。

1 个答案:

答案 0 :(得分:2)

  

一些研究让我发现我需要设置Passenger和Apache HTTP Server,而不是简单的指令。

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

当您启动应用程序时,您将看到该应用正在侦听的地址和端口。确保它是0.0.0.0和4567.如果它是127.0.0.1localhost,则表示它只会为来自同一台计算机的请求提供服务

在您开始工作之后,下一步就是将您的Sinatra应用程序变为服务。从本质上讲,这意味着应用程序在后台运行,并在系统重新启动时自动启动。查看Supervisor,这是一个非常简单的配置,可以让它运行。

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