[英]Running a Rails site: development vs production
我正在学习Ruby on Rails。 目前我只是在OS X终端中使用rails server
在本地运行我的站点。 在生产箱上运行Rails站点时会发生什么变化?
rails server
启动? 注意 :我正在运行Rails 3。
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
有两种情况你可以在这里使用“生产”这个词。 其中一个是在生产模式下运行服务器。 你可以在当地这样做,
RAILS_ENV=production ./script/server
从config / environments / production.rb中获取此配置。 尝试将此文件与config / environments / development.rb进行比较。 只有缓存类之类的细微差别。 开发模式使其更容易,以便它可以立即响应您所做的任何更改。 此外,如果您选择以这两种模式之一运行服务器,则将使用两个不同的数据库(默认情况下),即yourproject_development和yourproject_production。
另一方面,将轨道部署到生产箱是不同的。 您需要仔细选择服务器。 您可能必须处理部署脚本可能是capistrano。 您可能还需要负载均衡器,例如netgear。 数据库也可能需要深入考虑,如大小期望,主/从群集等,
注意:我从未使用过Rails 3.这个答案偏向于2.3.x.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.