Rails生产环境



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

我使用thin作为服务器,Nginx作为代理,redis和Postgres作为数据库。还有Clockwork和sidekiq

对于一个小项目来说,Capistrano似乎要做很多工作,但是如果您希望应用程序不断增长(因此部署的复杂性也会增加),那么无论如何都值得设置。

我个人喜欢将特定于发行版的可用Ruby(和gems)分离到特定于应用程序的RVM部署的想法。此外,要求绑定器管理gem依赖并确保遵从性是无价的。我不建议为该用户启用sudo;它将把整个栈从HTTP请求暴露给根级操作系统控制。应用程序不应该需要管理权限,部署脚本可能需要。

如果您是Rails新手,我会为您的第一次部署推荐一些简单的东西。Heroku允许你通过简单地将git推送到应用的存储库来部署应用。他们处理所有必要的步骤,使你的应用程序在互联网上可用。最重要的是,它是免费的,只要你不需要大量的资源。

EngineYard是另一个托管解决方案,在灵活性(和成本)方面,它很容易部署到Heroku。

一旦你适应了部署生产应用程序,那么你可以使用自己的服务器和使用capistrano来实现最终的定制。

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

最新更新