NGINX(エンジンエックス)|日本公式サイト

NGINXはF5ファミリーの一員となりました。新体制の詳細はこちらを御覧ください。

「アプリケーションサーバとWebサーバ」という単語の対比で語られていますが、インターネット上では通常、この2種類のサーバは、Webサイトのコンテンツに対するユーザの要求を満たすという共通の目的のために一緒に導入されています。ウェブサーバとアプリケーションサーバの特性を定義した標準文書はありませんが、一般的にどのように理解されているかを見てみましょう。

Webサーバの基本的な仕事は、Webサイトの静的コンテンツ(HTMLページ、ファイル、画像、動画など)に対するクライアントからの要求を受け入れ、それに応えることです。クライアントとはほとんどの場合、ブラウザやモバイルアプリケーションのことであり、リクエストはHTTP(Hypertext Transfer Protocol)メッセージの形で行われ、ウェブサーバからのレスポンスも同様に行われます。

アプリケーションサーバの基本的な仕事は、一般的にビジネスロジックと呼ばれるものへのアクセスをクライアントに提供することです。このビジネスロジックは、ダイナミックコンテンツを生成します。アプリケーションサーバのクライアントは、多くの場合、アプリケーションそのものであり、ウェブサーバや他のアプリケーションサーバも含まれます。アプリケーションサーバとそのクライアントの間の通信は、HTTPメッセージの形をとるかもしれませんが、それはウェブサーバとそのクライアントの間の通信のように必須ではありません。CGIの亜種を含め、他の多くのプロトコルが普及しています。

アプリケーションサーバとWebサーバの連携は?

静的コンテンツと動的コンテンツの両方を提供するWebサイトでは、静的コンテンツ用のWebサーバと動的コンテンツを生成するためのアプリケーションサーバが稼働しています。リバースプロキシロードバランサーは、1つまたは複数のウェブサーバと1つまたは複数のウェブアプリケーションサーバの前に設置され、要求されたコンテンツの種類に基づいて、次に設定された負荷分散アルゴリズムに基づいて、トラフィックを適切なサーバに転送します。ほとんどのロードバランサープログラムはリバースプロキシサーバでもあるため、ウェブアプリケーションサーバのアーキテクチャを簡素化することができます。

なぜ、アプリケーションサーバとWebサーバの違いが問題になるのでしょうか?

それは、Webサイトへの要求が高まるにつれ、この2つのタイプのサーバの設計と使用が重なり合うようになってきたことが大きな理由です。多くの一般的なアプリケーションは、ウェブサーバとアプリケーションサーバの両方として機能します(Apache HTTP Server、Express、Hapi、Koaなど)。

また、Webアプリケーションサーバの中には、通信プロトコルとしてHTTPを使用しているものもあり、重複しています。同様に、ウェブサーバの中には、PHPのような一般的な言語をネイティブにサポートするモジュールや機能が組み込まれていたり、HTTPからのリクエストをアプリケーションが使用するプロトコル(FastCGIなど)にプロキシして変換したりすることで、アプリケーションサーバのようになっているものもあります。

NGINX Plusはどのように役立ちますか?

NGINX PlusとNGINXは、Dropbox、Netflix、Zyngaなど、クラス最高のサーバソリューションであり、Dropbox、Netflix、Zyngaなどの高トラフィックのWebサイトで使用されています。世界中で4.5億以上のウェブサイトがNGINX PlusとNGINX Open Sourceを利用しており、迅速かつ確実で安全なコンテンツのデリバリーを実現しています。

NGINX Plusは、ウェブサーバやアプリケーションサーバの前に配置することで、非常に効率的なリバースプロキシとロードバランサーとなり、FastCGIやSCGIを含むいくつかのタイプのアプリケーションサーバ用の翻訳モジュールを備えています。NGINX Plusは、ウェブサービング、高度なロードバランシング、キャッシング、管理・監視、リクエストルーティングなどの複数の機能を、柔軟でコスト効率の高い1つのソリューションに統合し、静的・動的コンテンツを迅速かつ信頼性の高い方法で配信することで、顧客満足度と収益を向上させます。今日のハイパフォーマンスなWebサイトには欠かせない、完全なアプリケーション配信プラットフォームです。