4

これは以前に尋ねられたことがありますが、特に徹底的に答えたことはありません。

WEBrick、Mongrel、Apache、Nginx (Passenger Phusion 経由) など、Rails をサポートするいくつかの Web サーバーのいずれかで Rails を実行しているとします。サーバーが 2 つの同時 GET を受信すると、どうなりますか? これはどこかに明確に文書化されていますか?

基本的に私は興味があります:

  • サーバーによって毎回新しいインスタンスまたはレールが作成されますか?
  • 既存のインスタンス (Rails が既に読み込まれている Ruby プロセス) を再利用して、リクエストを処理しようとしますか?
  • 新しい Ruby プロセスを開始して Rails を再ロードするのがかなり遅くありませんか?

ありがとう!徹底的な説明へのリンクは大歓迎です。

4

1 に答える 1

0

ワーカー (apache、phusion、unicorn) を使用するものもあれば、使用しないものもあります。ワーカーを使用しない場合、アプリケーションがスレッドセーフであるかどうかに大きく依存します。そうであれば、一度に複数のリクエストが処理される可能性があります。それ以外の場合は、それRack::Lockをブロックするものがあります。ワーカー (個別のプロセス) がある場合、それぞれがリクエストを実行し、マスターが新しいリクエストを割り当てるプールに戻ります。読む

于 2012-04-28T18:27:29.317 に答える