【问题标题】:Rails Environments Best PracticesRails 环境最佳实践
【发布时间】:2015-01-19 19:49:07
【问题描述】:

我一直主要在本地(在开发环境中)开发 Rails,并且需要尽快使该站点在 nginx、ec2 上上线。我知道 Rails 项目附带了三个环境。我几乎没有关于切换环境的开放式问题可以帮助我加快这个过程。

  1. 在 ec2 的“生产”环境中运行有多大必要?换句话说,简单地运行我一直在运行的相同“开发”环境有什么缺点?

  2. 我浏览了“配置 Rails 应用程序”教程 (http://guides.rubyonrails.org/configuring.html),但对我来说这听起来像是胡言乱语。根据您的经验,在从开发到生产的过程中,需要对配置文件进行哪些重大更改(或强烈建议进行更改)?

  3. 您还有什么关于环境的建议吗?

非常感谢!

【问题讨论】:

    标签: ruby-on-rails amazon-ec2


    【解决方案1】:

    在 ec2 的“生产”环境中运行有多大必要?换句话说,简单地运行我一直在运行的相同“开发”环境有什么缺点?

    开发环境旨在公开大量可能有助于调试应用程序的内部信息。您不想将它们暴露给用户,尤其是在异常情况下。

    风险在于暴露内部的私有数据,例如连接字符串。

    此外,开发环境旨在为每个请求重新加载类,从而有效地减慢了请求的速度。同样适用于资产管道,它被设计为在运行时重新编译。

    最后但并非最不重要的一点是,gem 和库依赖于这样一个事实,即开发不需要“安全”。你真的不想打破这个假设。

    我浏览了“配置 Rails 应用程序”教程 (http://guides.rubyonrails.org/configuring.html),但对我来说这听起来像是胡言乱语。根据您的经验,在从开发到生产的过程中,需要对配置文件进行哪些重大更改(或强烈建议进行更改)?

    从默认值开始。它们适用于大多数情况。随着时间的推移,你会调整它们。

    您还有什么关于环境的建议吗?

    如果您想使用 Rails,请遵循 Rails 约定。 ;)

    【讨论】:

    • 我理解为什么在不同的环境中运行是有意义的,我什至理解对开发机器和生产机器的需求,我仍在努力解决的问题是需要将它们标记为不同的数据库。将应用程序指向“localhost”上的数据库有什么问题?这样,当我在我的开发机器上运行代码时,它将加载本地数据库(即开发),当我将代码推送到我的产品机器时,它将加载本地数据库(即产品)。如果您有 prod 和 dev 机器,为什么还要在同一台机器上指定 dev 和 prod DB?我确定有一个我不知道的充分理由
    • 因为 db 并不总是在 localhost 上运行。
    猜你喜欢
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    • 2019-10-19
    • 2011-09-28
    • 2016-10-26
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多