Ruby on rails Rails生产环境

Ruby on rails Rails生产环境,ruby-on-rails,security,production-environment,Ruby On Rails,Security,Production Environment,我是rails的新手,我一直在网上搜索部署指南——它非常零碎。我看到一些建议部署为支持sudo的用户。我在想,出于安全原因,你会创建一个没有sudo权限运行应用程序的用户。RVM和bundler需要自己的主目录,但拥有sudo权限似乎是多余的,而且存在安全风险。我是手动操作的,因为这是一个棘手的beta级应用程序,部署它还不是很简单,所以capistrano在这一点上只是一个模糊层 我使用thin作为服务器,Nginx作为代理,redis和Postgres作为数据库。时钟系统和sidekiq也一

我是rails的新手,我一直在网上搜索部署指南——它非常零碎。我看到一些建议部署为支持sudo的用户。我在想,出于安全原因,你会创建一个没有sudo权限运行应用程序的用户。RVM和bundler需要自己的主目录,但拥有sudo权限似乎是多余的,而且存在安全风险。我是手动操作的,因为这是一个棘手的beta级应用程序,部署它还不是很简单,所以capistrano在这一点上只是一个模糊层


我使用thin作为服务器,Nginx作为代理,redis和Postgres作为数据库。时钟系统和sidekiq也一样。

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

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

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


我在这两种环境中都有生产网站,而且我还不需要麻烦地迁移到我自己的托管服务器。

Capistrano似乎是一个很小的项目,但如果您希望应用程序不断增长(从而增加部署的复杂性),那么安装还是值得的


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

我看过一些教程,指导您安装一个应用程序,以便启用sudo的用户运行它。:P你会把应用程序放在/home/?我不会说这真的很重要,但更多地取决于挂载点是如何安排的,或者你可以把内容放在哪里。最有可能在用户的home dir或/var/www中的某个地方为他们的应用程序找到一个家。如果主机可能用于多个小型应用程序,我个人倾向于使用/var/www。好的,你会使用chmod-R appuser:www data/var/www/app吗?Nginx当然需要一些访问权限,即使它是代理到thin的。@EdwardWilliams,是的。我会授予RoR rwx权限和Nginx r-x权限。