RailsのデフォルトのWEBrickサーバーに対する他のオプションを試して評価してきましたが、Thinは最も痛みがなく、非常にうまく機能したクリーンなものでした。
これらのMongrel、Thin、WEBrick、Passengerのどれをお勧めしますか、そしてその理由は..?これらのサーバーのいずれかに付属するスケーラビリティー特典(クラスターフレンドリーまたはある種のスケールを処理できる構成)はありますか?または、スケーラビリティーを評価する際のパラメーターにする必要がありますか?
RailsのデフォルトのWEBrickサーバーに対する他のオプションを試して評価してきましたが、Thinは最も痛みがなく、非常にうまく機能したクリーンなものでした。
これらのMongrel、Thin、WEBrick、Passengerのどれをお勧めしますか、そしてその理由は..?これらのサーバーのいずれかに付属するスケーラビリティー特典(クラスターフレンドリーまたはある種のスケールを処理できる構成)はありますか?または、スケーラビリティーを評価する際のパラメーターにする必要がありますか?
ディパックはすでにあなたの質問の半分に答えましたが、少しはっきりさせておきます。(私はPhusion Passengerの作者の1人です。)
スケーラビリティに関しては、大きな違いはありません。これらはすべて本番環境で非常によく似ており、すべてほぼ同じようにスケーリングされます。発生する問題は、アプリまたはRailsが原因である可能性が最も高くなります。ええと、実際に本番環境で使用すべきではないWEBrickを除いて。hello worldベンチマークに違いが見られるかもしれませんが、それだけです。本番環境での使用では、ほとんどの時間がアプリで費やされるため、HelloWorldベンチマークで表示されるわずかな速度の違いは完全に表示されなくなります。
ただし、注意すべき微妙な点がいくつかあります。
I / Oモデルは、アプリケーションの性質に応じて重要な場合と重要でない場合があります。Mongrel、Thin、Unicorn、これらはすべてマルチプロセスのシングルスレッドです。これは、ローカルデータベース内のものを検索して何かをレンダリングする従来のウェブアプリには最適ですが、多くのHTTP API呼び出しを実行するアプリや、I/Oで多くの待機が必要なアプリには主に適しています。Rails 4ライブストリーミングが大したことである理由は、これを詳細に説明しています。
Phusion Passengerもマルチプロセスシングルスレッドですが、PhusionPassengerEnterpriseはマルチスレッドをサポートしています。Phusion Passenger Enterpriseは、オープンソースのPhusion Passengerの商用バリアントであり、大規模な本番環境に役立つさまざまな機能を備えています。
したがって、シナリオに最適と思われるオプションを選択してください。
本番環境に設定するのが最も簡単なのは、おそらくApacheとmod_rails(passenger)でしょう。新しいホットネスを使用したい場合は、nginxと乗客に旋風を与えることができます。
開発の場合、雑種は通常、最も扱いやすいです。ほとんどのWindowsIDE(RadRails、Netbeans)では、開発作業にWebrickまたはMongrelを使用するかどうかを選択でき、IDE自体からサーバーを制御できます。
アップデート
4つの選択肢
実際には4つの選択肢があり、それに加えてWEBrickもありますが、これは実稼働サーバーにとっては珍しい選択肢です。およそ複雑さが増す順に...
nginx + Mongrel nginx + Passenger Apache + Mongrel Apache + Passenger(Phusion Passenger Standaloneがありますが、実際にはnginx + Passengerが一緒にコンパイルされているため、カウントしていませんが、一部の人にとっては良いオプションかもしれません。)
大規模なサイトでは、サーバーの前に専用のレイヤー7ハードウェア(NetScaler、F5など)を追加する場合があります。
薄いものは、開発と生産のための宝石の「薄い」と同じくらい簡単です