NGINX Full Version

Webサーバーとは

Webサーバーとは?

Webサーバーは、テキスト、画像、動画、アプリケーションデータなど、Webサイトのコンテンツを保存し、要求したクライアントに配信します。最も一般的なクライアントはWebブラウザで、表示されているページでユーザーがリンクをクリックしたり、ドキュメントをダウンロードしたりすると、Webサイトからデータを要求します。

Webサーバーは、HTTP(Hypertext Transfer Protocol)を使用してWebブラウザと通信します。大半のWebページのコンテンツは、HTML(Hypertext Markup Language)でエンコードされています。コンテンツは、静的なもの(テキスト、画像など)、動的なもの(算出された価格、顧客が購入のためにマークした商品のリストなど)があります。大半のWebサーバーは、動的なコンテンツを提供するために、ビジネスロジックを通信にエンコードするサーバーサイドスクリプト言語をサポートしています。一般的にサポートされている言語は、ASP(Active Server Pages)、Javascript、PHP、Python、Rubyなどです。

また、Webサーバーは、頻繁に要求されるコンテンツの配信を高速化するために、コンテンツをキャッシュすることがあります。この処理は、Webアクセラレーションとも呼ばれます。

動画

Webサーバーの最適化
 
NGINXとgRPC

WebサーバーにパブリックIPアドレスは必要か?

Webサーバーは、自身のネットワーク外のユーザーからアクセスされるためには、パブリックIPアドレスが必要です。しかし、セキュリティ強化の目的で、Webサーバーはプロキシサーバーやロードバランサーの背後に「隠される」ことがしばしばあります。大規模なサイトでは、複数のWebサーバーが設置されており、ロードバランサーによってトラフィックが分散されているケースがほとんどです。また、1台のWebサーバーの公開IPアドレスを複数のWebサイトで共有し、続いてロードバランサーがリクエストURLの情報をもとに、どのサイトがクライアントのリクエストを受けるかを決定することも可能です。

ロードバランシングとWebサーバー

ロードバランサーは、複数のサーバーにワークロードを分散させることによって、パフォーマンスと信頼性を向上させます。ロードバランサーをインフラストラクチャに組み込むと、リクエストはまずロードバランサーに送信され、受信したロードバランサーはそのリクエストを正しいバックエンドサーバーに転送します。ロードバランサーはサーバーを選択する際、最初にどのサーバーがリクエストに対して適切に応答しているかを確認します。そして、あらかじめ設定されたルールに基づいて、正常な状態のサーバープールから選択します。

参考資料