nginxがまだ行っていないことをMongrel2が提供/提供する目的を混乱させています。
(はい、マニュアルを読みましたが、nginx との根本的な違いを理解するには、あまりにも初心者である必要があります)
現在の Web アプリケーション スタックは次のとおりです。
- nginx : Web サーバー
- Lua : プログラミング言語
- FastCGI + LuaJIT : nginx を Lua に接続する
- Postgres : データベース
それぞれの長所を確認し、ユース ケースに応じていずれかまたは両方を使用することを決定する必要があります。
nginx は mongrel2 が表面で提供するすべてのことを行うように見えますが、この 2 つの焦点には大きな違いがあることがわかります。
Nginx はフロントエンド Web サーバーとして優れており、バックエンド Web サーバー/アプリケーション サーバーにリクエストをプロキシし、静的コンテンツも提供できます。
Mongrel2 は、スタックのわずかな変更です。前述のように、その力は、バックエンド アプリケーション サーバーとの間のトランスポート レイヤーとして zeromq を使用することから得られます。動的なリクエスト URL (アプリ リクエスト) を提供し、zeromq を使用してタスクの計算部分を別のバックエンドに向けることができます。 mongrel2 を使用すると、http、websockets などだけでなく、他のプロトコルも提供できます (そうしたい場合)。 ) すべて同じサーバーから。ユーザーは、アプリの一部が異なるバックエンドから提供されていることを知ることはありません。
Web アプリケーションの機能に対する要件が変化し続ける場合、またはストリーミングなどを追加したい場合、バックエンドでさまざまな言語でコーディングする機能などがある場合は、間違いなく mongrel2 を検討します。または、静的ファイルとキャッシングに nginx/haproxy/varnish を使用し、それ以外はすべて mongrel2 に送信されるハイブリッドを使用することもできます。