我主要是一名 iOS 开发人员。在构建我当前的应用程序时,我需要一个具有 REST API 和几个 GET 请求的服务器。我花了一点时间学习 Ruby,然后开始使用 Sinatra,一个简单的 Web 框架。我可以运行我的服务器脚本,并从浏览器的 localhost:4567
访问它,例如,请求为 localhost:4567/hello
。
这就是我感到力不从心的地方。我在 DigitalOcean 设置了一个 Ubuntu Droplet,并摸索着通过命令行设置所有必要的工具,直到我现在可以在这个 Droplet 上再次运行我的服务器。
问题是我无法通过 droplet.ip.address:4567
访问我的服务器,一些研究让我发现我需要 Passenger 和 Apache HTTP Server进行设置,然后 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.1
或 localhost
,则意味着它将仅服务来自同一台计算机的请求
完成此操作后,下一步是将您的 Sinatra 应用程序变成服务。本质上,这意味着该应用程序在后台运行,并在系统重新启动时自动启动。查看 Supervisor,这是一个非常简单的配置来让它运行。
稍后您可以安装 Apache 或 Nginx 并将其放在您的 Sinatra 应用程序前面。这些代理只是将请求从端口 80(默认 HTTP 端口)转发到您的 sinatra 应用程序,但可以执行其他操作,例如添加 SSL 支持、负载平衡、自定义错误页面等 - 所有这些您现在都不需要。
关于ruby - 如何在服务器上设置我的 Sinatra REST API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34631278/