2010-08-14 97 views
7

什麼是理想的Rails服務器?讓我們假設它在VPS上,比如Linode。讓我們假設任何網站都不會成爲下一個推特,但它們應該很好地擴展。它還必須支持多個站點,並且所有站點都是rails 3.並且數據庫必須位於同一臺服務器上(現在)。Ideal Rails服務器

它應該使用apache還是nginx?

Ruby企業版或只是普通的Ruby?

理想的Linux發行版?

MySQL,PostgreSQL還是別的?

應該如何佈置這些目錄(把你的rails網站或其他地方放在哪裏)?

部署選項?

還有其他嗎?

回答

14

它應該使用apache還是nginx? Nginx似乎是這裏的首選路線,除非您需要特定的Apache功能。如果您使用Passenger,則支持Apache和Nginx。更多關於乘客here

Ruby企業版或只是普通的Ruby? 我很確定稀土元素只適用於Ruby 1.8,而這對於Rails 3來說並不是真正的首選版本。 Rails 3在1.8中遇到了一些問題,但現在可能已經修復了它們。但是,一般來說,Ruby 1.9.2運行的是Rails 3。

理想的Linux發行版? 這真的沒關係。如果你不確定,Ubuntu是一個不錯的選擇,因爲這裏有很多知識,而且使用起來非常簡單。 Slicehost有許多關於VPS入門的精彩文章,其中很多都專注於Ubuntu:http://articles.slicehost.com/

MySQL,PostgreSQL還是別的? 這絕對是主觀的。 MySQL絕對是最常見的,如果你真的不確定,這是一個很好的起點。然而,人們經常爭辯說PostgreSQL更清潔,更容易使用該MySQL。如果你剛開始,我會推薦MySQL,因爲已經有大量的信息。

應該如何佈置目錄(把你的rails網站或其他地方放在哪裏)? 你可以把你的rails項目放在你喜歡的任何地方,所以我喜歡把它放在我的主目錄中。只要確保您的Web服務器可以訪問您的靜態資產。

部署選項? Capistrano很受歡迎。你只需提交你的修改和cap deploy,你就可以開始運行了。

還有什麼? 如果這一切似乎壓倒一切,看看像Heroku更簡單的解決方案。他們爲你設置了一切,而當你放鬆一些靈活性時,你不必擔心這一切。他們的定價不算太差,他們提供免費的選擇。

3

我覺得凱爾總結得很好。但我想我會讓你知道我自從rails beta4(以及現在的RC)以來一直在使用的內容。這種設置有工作很適合我:

Rackspace的雲服務器 - 給你的服務器的完全控制。您可以即時調整服務器的大小。如果您想將設置複製到其他網站,也可以拍攝快照圖像。它便宜,在我看來比亞馬遜雲更好。

CentOS 5.4 - 固體,但如kyl提到的可能任何發行版都可以正常工作。

Ruby 1.9.2RC 2 - 目前爲止我還沒有遇到Rails 3的問題。肯定會使用紅寶石企業時,他們將其端口到1.9.2(不知道是否在工作,雖然??)

nginx - 快速和輕量級。我比apache更喜歡它。在乘客,雜種和瘦身者面前工作得很好。

MySQL - 只是個人喜好。我一直在使用它多年。如果需要縮放,則可以輕鬆設置主/從或主/主配置。有些人只使用sqlite就成功了,但我更喜歡一些更強大的東西。

Github - 必須爲我的源代碼控制。 Bundler與github搭配使用效果很好

應用服務器 - 我仍然在討論如何解決這個問題。我對Passenger 2.2.15感到滿意,直到我看到爲了處理併發而產生新的ruby進程需要多長時間。花費長達30秒的時間爲我產生一個新的進程,並且應用程序被鎖定,所以在產卵時不會有請求通過。我正在調查,如果它是我的應用程序或Rails 3需要很長時間才能加載。不過,這個問題已被Passenger 3修復。希望這將很快發佈。因此,我可能會使用Thin或Mongrel,直到Passenger 3出現。

Capistrano - 非常適合Rails 3.我建議您找一些用git標籤版本化應用程序的上限食譜......或者只是自己寫。

還有什麼?與服務器並不真正相關,但我會建議使用新的插件API來處理可重複使用的應用程序的任何部分。閱讀railties和引擎。它很容易與珠寶商創建一個寶石,並使用github使用珠寶商的耙子任務進行版本化。然後,您可以從github標籤或master中進行部署,方法是在Gemfile中添加gem和github源代碼,並安裝或更新它。我最近將所有通用應用程序代碼(博客,身份驗證等)移植到了Rails 3引擎,並且工作得很好。任何時候我需要重新使用這些代碼,我只需將它放入新應用程序的Gemfile中即可。