【问题标题】:Running a Rails site: development vs production运行 Rails 站点:开发与生产
【发布时间】:2012-01-06 23:53:50
【问题描述】:

我正在学习 Ruby on Rails。目前,我只是在 OS X 终端中使用rails server 在本地运行我的网站。 Rails 站点在生产环境中运行时会发生什么变化?

  • 网站是否仍以 rails server 开头?
  • 与 db 的设置方式有何不同?

注意:我正在运行 Rails 3。

【问题讨论】:

标签: ruby-on-rails dev-to-production


【解决方案1】:

rails 应用程序可以在生产环境中运行,调用 rails server -e production,尽管 99% 的时间你会在乘客或瘦身之类的东西上提供服务,而不是 WEBrick,这意味着启动服务器的命令不同。 (例如thin start -e production

这是一个复杂的问题,但开始了解差异的最佳起点是查看特定的 environment.rb 文件。当 rails 启动时,它会从与调用环境匹配的环境文件开始,即如果您在开发中启动它,它会从加载您的 development.rb 文件开始,或者如果您在生产中,它将加载 production.rb 文件。环境的差异主要是各种环境配置文件的差异造成的。

基本上,如果 Rails 3.1 应用程序处于生产模式,那么默认情况下它不会即时编译资源,并且会进行大量缓存,而开发中不会发生这种情况。此外,当您收到错误消息时,它们将被记录但不会呈现给用户,而是使用您公共目录中的静态错误页面。

为了更深入地了解这一点,我建议阅读相关的 Rails 指南:

Rails 初始化指南:http://guides.rubyonrails.org/initialization.html

Rails 配置指南:http://guides.rubyonrails.org/configuring.html

【讨论】:

    【解决方案2】:

    您可以在两种情况下使用“生产”一词。其中之一是以生产模式运行服务器。您可以通过以下方式在本地执行此操作,

    RAILS_ENV=production ./script/server 
    

    此配置从 config/environments/production.rb 中获取。尝试将此文件与 config/environments/development.rb 进行比较。只有细微的区别,比如缓存类。开发模式使它更容易,因此它会立即响应您所做的任何更改。另外,如果您选择以这两种模式中的任何一种运行服务器,则会使用两个不同的数据库(默认情况下),即 yourproject_development 和 yourproject_production。

    另一方面,将 Rails 部署到生产环境是不同的。您需要仔细选择您的服务器。您可能要处理的部署脚本可能是 capistrano。您可能还需要一个负载平衡器,例如 netgear。数据库也可能需要深入考虑,如大小预期、主/从集群等,

    注意:我从未使用过 Rails 3。这个答案偏向于 2.3.x。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-29
      • 1970-01-01
      相关资源
      最近更新 更多