Rails生产环境

时间:2013-04-07 01:40:54

标签: ruby-on-rails security production-environment

我刚接触rails一直在网上搜索部署指南 - 它非常分散。我看到一些建议部署为启用sudo的用户。我以为你会出于安全原因创建一个没有sudo权限的用户来运行应用程序。它需要它自己的RVM和捆绑器的主目录,但是具有sudo权限似乎是多余的并且存在安全风险。我手动完成所有操作,因为它是一个棘手的beta级应用程序,并且部署它还不是很简单,所以capistrano在这一点上只是一层混淆。

我使用thin作为服务器,Nginx作为代理,redis和Postgres作为数据库。发条和sidekiq也是。

2 个答案:

答案 0 :(得分:1)

如果您是Rails的新手,我建议您在第一次部署时使用简单的东西。 Heroku允许您通过简单地对其存储库执行git推送来部署应用程序。他们处理在互联网上提供应用程序所需的所有步骤。最重要的是,只要您不需要大量资源,它就是免费的。

EngineYard是另一种托管解决方案,在灵活性(和成本)方面易于部署并从Heroku升级。

一旦您对部署生产应用程序感到满意,那么您可以使用自己的服务器并使用capistrano进行最终的自定义。

我在两个环境中运行生产网站,我还需要去迁移到我自己的托管服务器。

答案 1 :(得分:1)

Capistrano即使对于一个小项目也似乎很多工作,但如果您希望应用程序不断增长(从而增加部署的复杂性),那么它无论如何都值得设置。

我个人喜欢将特定于发行版的Ruby(和gems)分离到特定于应用程序的RVM部署的想法。此外,要求bundler管理gem依赖关系并确保合规性是非常宝贵的。我不建议为该用户启用sudo;它将整个堆栈从HTTP请求暴露给根级OS控制。应用程序不应该需要管理访问权限,部署脚本可能。