【问题标题】:Rails Production EnvironmentRails 生产环境
【发布时间】:2013-04-07 01:40:54
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 我看过指导您安装应用程序的教程,以便启用 sudo 的用户运行它。 :P 你会把应用程序放在 /home// 吗?
    • 我不会说这真的很重要,但更多地取决于安装点的排列方式或您可以放置​​内容的位置。最有可能在用户的主目录或 /var/www 中的某个位置为他们的应用程序找到一个主目录。如果主机可能用于多个小型应用程序,我个人倾向于使用 /var/www。
    • 好的,你会做一个 chmod -R appuser:www-data /var/www/app 吗? Nginx 当然需要一些访问权限,即使它正在代理瘦身。
    • @EdwardWilliams 是的。我会给 RoR rwx 权限和 Nginx r-x 权限。
    【解决方案2】:

    如果您是 Rails 新手,我建议您在首次部署时使用一些简单的方法。 Heroku 允许您通过简单地向其存储库执行 git push 来部署应用程序。他们处理使您的应用程序在 Internet 上可用所需的所有步骤。最重要的是,只要您不需要大量资源,它就是免费的。

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

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

    我的生产网站在这两种环境中都运行,我还没有麻烦迁移到我自己的托管服务器。

    【讨论】:

      猜你喜欢
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 2015-11-09
      • 2014-01-28
      • 1970-01-01
      • 1970-01-01
      • 2014-07-25
      • 2018-12-15
      相关资源
      最近更新 更多