これはレール環境でのnginxとシンに関する初心者の質問です。Railsを読んだり学んだりしていると、nginxとthinがRailsサイトにとって素晴らしい組み合わせであるとよく耳にします。それぞれの説明を読むと、どちらも自分自身を Web サーバーとして説明しているため、この組み合わせがテーブルにもたらすものについて少し混乱しています。誰かがそれらが何であるか、そしてそれらがどのように互いに補完するかを簡単に説明できれば、私は非常に感謝しています.
ありがとう!
これはレール環境でのnginxとシンに関する初心者の質問です。Railsを読んだり学んだりしていると、nginxとthinがRailsサイトにとって素晴らしい組み合わせであるとよく耳にします。それぞれの説明を読むと、どちらも自分自身を Web サーバーとして説明しているため、この組み合わせがテーブルにもたらすものについて少し混乱しています。誰かがそれらが何であるか、そしてそれらがどのように互いに補完するかを簡単に説明できれば、私は非常に感謝しています.
ありがとう!
典型的な小規模なアプリケーションの展開では、Nginx (または Apache) と少数のシン (または Mongrel、Unicorn など) サーバーがすべて 1 台のマシンで実行されます。
Nginx はすべてのリクエストを受け取ります。次に、静的ファイル (css、js、画像、キャッシュされたもの) を直接提供します。リクエストの処理が必要な場合は、リクエストを Rails プロセス (Thin) に渡します。
このようにして、(比較的) 遅いアプリケーション サーバーは静的ファイルの提供から解放され、Web サーバーは一種の負荷分散を提供します。
Apache/Mongrel などに対する Nginx/Thin の利点は、Nginx/Thin が UNIX ソケットを介して直接通信できるため、tcp/ip スタックを介した通信のオーバーヘッドがなくなることです。
Thin はアプリケーション サーバーであり、Nginx は Web サーバーです。
http://www.javaworld.com/javaqa/2002-08/01-qa-0823-appvswebserver.htmlから
アプリケーション サーバーは、HTTP などのさまざまなプロトコルを介してクライアント アプリケーションにビジネス ロジックを公開します。Web サーバーは、主にWeb ブラウザーで表示するHTML の送信を処理しますが、アプリケーション サーバーは、クライアント アプリケーション プログラムが使用するビジネス ロジックへのアクセスを提供します。アプリケーション プログラムは、オブジェクト (または手続き型の世界の関数) でメソッドを呼び出すのと同じように、このロジックを使用できます。
無知から言えば (私は Thin を使用したことがありません)、nginx とアプリケーション サーバーを混在させて、nginx を使用して静的コンテンツを提供し、アプリケーション サーバーのリバース プロキシとして機能させるのはごく普通のことです。
これにより、非常に高速な静的コンテンツ サービスを、選択したアプリケーション サーバー (プログラミング言語によって異なります) と簡単に組み合わせることができます。これらはすべて、同じアドレス: ポートから送信されます。