我正在學習Ruby on Rails。目前我只在本地運行我的站點,在OS X Terminal中使用rails server
。 Rails站點在生產環境中運行時會發生什麼變化?運行Rails站點:開發vs生產
- 該網站仍然以
rails server
開頭嗎? - db與db的設置有什麼不同?
注意:我運行的Rails 3
我正在學習Ruby on Rails。目前我只在本地運行我的站點,在OS X Terminal中使用rails server
。 Rails站點在生產環境中運行時會發生什麼變化?運行Rails站點:開發vs生產
rails server
開頭嗎?注意:我運行的Rails 3
一個Rails應用程序可以調用生產rails server -e production
運行,雖然你會在像乘客或薄,而不是被服務的時間99% WEBrick,這意味着有一個不同的命令來啓動服務器。 (例如thin start -e production
)
這是一個複雜的問題,但開始瞭解差異的最佳位置是查看特定的environment.rb
文件。當導軌啓動時,它將從與被調用環境相匹配的環境文件開始,也就是說,如果您在開發時啓動它,它將加載您的development.rb
文件,或者如果您正在生產,它將加載production.rb
文件。環境的差異主要是各種環境配置文件中這些差異的結果。
基本上,如果一個Rails 3.1應用程序處於生產模式,那麼默認情況下它不會動態地編譯資產,並且很多緩存將在開發中不會發生。此外,當您收到錯誤消息時,它們將被記錄但不會呈現給用戶,而是將使用來自公共目錄的靜態錯誤頁面。
爲了更深入地瞭解這一點,我建議在閱讀相關的軌道指南:
Rails的初始化指南:http://guides.rubyonrails.org/initialization.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.
可能的重複:http:// stackoverflow。com/questions/1949229/change-a-rails-app-to-production –
@ Black,對我來說,這看起來不像你鏈接的問題的重複。 – Andrew
您需要添加生產參數'rails server -e production' – abhinav