2016-08-07 11 views
3

生産におけるNginxの重要性は、通常、低速クライアントに対応する能力に基づいていました。 RESTful APIの設定では、プロダクションスタックにとっては不要なレイヤー、特にPuma(普遍的に使用されているユニコーンとは異なり、nginxの作業を扱うことはできません)と思われます。nginxのないPuma - 同じIP上の複数のルビーアプリケーション:PORT

プーマでは、要求トランザクションでワーカーをブロックすることなく複数の低速クライアントを接続できます。このため、プーマはクライアントを優雅に処理します。 Herokuは、低速のクライアントを期待するシナリオでの使用のためにPumaを推奨します。リバースプロキシとしてnginxのを使用せずに、同じポート上で複数のRubyアプリケーションを提供するためにプーマを有効にする方法 ref

答えて

2

あなたはできません、プーマはWebサーバーだけです。

TCP/IPスタックでは、各アプリケーションがポートに割り当てられ、受信したパックが、予想されるアプリケーションにプロキシされるようになります。複数のアプリケーションが同じポートに存在していたとします。受信したパケットが本当にそれを目的としているのか、同じポート上の他のアプリケーションのためのものなのかをアプリケーションが知る方法はありません。

私たちはプロキシとリバースプロキシを使用しています。 Nginxは、リバースプロキシであり、要求されたURLをアプリケーションに解決し、その要求をプロキシします。これは、特定のポート上のすべての着信パケットを受信し、別のポートまたはソケット上のアプリケーションにプロキシする単一のアプリケーションです。

複数のWebサーバーを同じポートに配置するには、Nginxやその前のHAproxyなどのリバースプロキシが必要です。

関連する問題