2013-04-07 246 views
0

我剛剛接觸rails,一直在尋找Web上的部署指南 - 它很分散。我看到一些建議部署爲啓用sudo的用戶。我以爲你會創建一個沒有sudo權限的用戶來安全地運行應用程序。它需要它自己的主目錄用於RVM和捆綁軟件,但具有sudo權力似乎是多餘的並且存在安全風險。我手動完成這一切,因爲它是一個棘手的測試級應用程序,部署它並不是直截了當,所以capistrano在這一點上只會是一層混淆。Rails生產環境

我使用瘦作爲服務器與Nginx作爲代理和redis和Postgres作爲數據庫。發條和sidekiq以及。

回答

1

即使對於一個小型項目,Capistrano看起來也有很多工作,但如果您希望應用程序不斷增長(因此部署的複雜性不斷增加),無論如何都值得安裝。

我個人喜歡將分佈式特定Ruby可用(和gems)分離到特定於應用程序的RVM部署的想法。此外,要求捆綁商管理寶石依賴並確保合規性是非常寶貴的。我不會建議爲該用戶啓用sudo;它會將整個堆棧從HTTP請求公開到根級操作系統控制。應用程序不應該要求管理訪問,部署腳本可能會。

+0

我見過教程,指導您安裝一個應用程序,以便啓用sudo的用戶正在運行它。 :P你可以把應用程序放在/ home//? – 2013-04-07 02:08:40

+0

我不會說這真的很重要,但更多地取決於如何安排掛載點或可以放置內容的位置。最有可能在用戶的主目錄或/ var/www中的某處找到他們的應用程序的主頁。如果主機可能用於多個小應用程序,我個人傾向於使用/ var/www。 – Nick 2013-04-07 02:36:18

+0

好的,你會做一個chmod -R appuser:www-data/var/www/app嗎?當然,Nginx會需要一些訪問權限,儘管代理權限很小。 – 2013-04-07 02:56:33

1

如果您是Rails的新手,我會爲您的首次部署推薦一些簡單的東西。 Heroku允許您通過簡單地將git推送到其存儲庫來部署應用程序。他們處理必要的所有步驟,使您的應用程序可以在Internet上使用。最重要的是,只要你不需要沉重的資源,它就是免費的。

EngineYard是另一種託管解決方案,在靈活性(和成本)方面易於部署和加快Heroku。

一旦您對部署生產應用感到滿意,那麼您可以使用自己的服務器並使用capistrano進行定製。

我有生產網站在兩種環境中運行,我還沒有需要去遷移到我自己的託管服務器的麻煩。