我是sinatra申请的新手。我用sinatra开发了我的第一个应用程序。现在,我想在我自己的私有服务器上部署此应用程序。我自己的私人服务器是Linux服务器,安装了所有必需的配置(即ruby,sinatra,passenger)。
那么,我想知道如何部署它?
答案 0 :(得分:0)
这是我们公司对Ruby微服务API的基本设置:
1)将您的Ruby应用程序放在特殊文件夹中
我们喜欢/ srv / applications /
2)为您的应用选择一个端口
不要使用默认端口。我更喜欢2000系列(例如,2000年,2010年,2020年......)中的Ruby应用程序。
3)设置反向代理以访问该端口上的应用程序
根据您的服务器,有许多Apache或Nginx的教程。
那样/ user-api会重定向到你的端口。防爆。 myserver.com/user-api转到myserver.com:2020
4)运行您的应用程序
如果您不使用bundler,请使用bundle运行该应用。要在特定端口上运行,请使用"捆绑exec rackup -p"
然后您应该能够访问该应用程序。如果您遇到麻烦,一些常见问题包括:1)端口被外部世界阻止,2)您在应用程序运行之前尝试访问它,现在即使应用程序正在运行,您仍然可以获得503s(重新启动您的网络服务器)解决它。)
奖金 - 将您的应用程序作为Unix服务运行
这有很多好处。如果您可以使用其他管理员级应用程序运行Ruby应用程序,那么您可以在重新启动时自动启动它,在故障时自动重启应用程序(当您遇到灾难性问题时可能会导致抖动)。
最初我们使用Monit,它通常用于服务监控,但实际上可以为服务启动/停止/重启(启动时启动)。
现在我们使用foreman和upstart。我强烈推荐这种配对,因为app监督是Upstart的教科书用例。如果你有一个vanilla配置,你可以跳过使用Foreman,但如果你需要启动其他服务,设置环境变量等,它会非常有用。