「WEBサーバ」とは?

ITインフラ

目的と背景

私たちが自分のスマホやPCから読みたい記事やサイトにアクセスできるのは、「WEBサーバ」が裏で稼働しているからなんです。「WEBサーバ」がなければ、この記事も今こうして読むことはできないのです(本当にありがとう!,WEBサーバ)。

私たちがインターネット上のサイトにアクセスするには不可欠だと言いましたが、「WEBサーバ」がこの時にどういった役割を担っているのか、どんな仕組みで動いてるのか、この記事で解説します。
この記事では「WEBサーバ」がどういったものか、概念説明に留めて次回以降の記事で実際に構築してみます。

WEBサーバとは?

「WEBサーバ」とはざっくり言うと、「WEBページを表示するためのサーバ」です。
例えば、ユーザがWEBサイトを閲覧したいときには、ブラウザにURLを入力したり、該当のサイトをクリックすることでそのWEBページが表示されます。

この時、そのユーザに対して「WEBページを表示する機能」を担うのが「WEBサーバ」です。フロントエンドの役割を担います。

皆さんが有難いことに私のブログを見て勉強しようと思い、ブラウザに「LoveLab | エンジニア」と入力して記事にアクセスするとブログのホーム画面が表示されます。これも「WEBサーバ」のおかげです。

以下はユーザがWEBページにアクセスするまでの概要図です。

① ユーザがブラウザのURLに「lovelabengineer.com」と入力する。
② ブラウザがOSを経由して「DNSサーバ」にFQDN「lovelabengineer.com」に紐づいた「IPアドレス」を問い合わせる。
③ 「DNSサーバ」がIPアドレスを返答する。
④ 該当の「WEBサーバ」にWEbコンテンツを要求する。
⑤ 「WEBサーバ」は該当のWEBコンテンツが動的サイトであった場合、「アプリケーションサーバ」と通信する。「アプリケーションサーバ」は「データベース」と通信する。
*静的サイトの場合、⑤をスキップして⑥へ
⑥ 「WEBサーバ」がWEBコンテンツをブラウザに表示する。

なおこの上記の通信プロトコルは「HTTP/HTTPS」が使われています。

WEBページの種類

WEBページ(WEBコンテンツ)と一概に言っても大きく分けると2種類あります。「静的サイト」「動的サイト」です。どちらのWEBページを表示するかによって「WEBサーバ」の裏側での挙動は異なります。

静的サイト

静的サイトは「どのユーザがアクセスしたとしても同様に表示するWEBコンテンツ」です。例えば、会社のホームページやこの技術ブログがそれに当たります。どんな人がアクセスしたとしても必ず同じWEBコンテンツを表示します。

この場合、誰がアクセスしても同じページを表示するので該当のWEBコンテンツを「WEBサーバ」に配置しておき、ユーザがそのコンテンツにアクセスしてきたら、「WEBサーバ」はそれを表示します。

動的サイト

動的サイトは「それぞれのユーザ毎に表示するWEBコンテンツ」です。例えば、AmazonのWEBページがこれに該当します。私とあなたとではログイン後に同じコンテンツが表示されずに、それぞれのユーザに合わせたWEBコンテンツが表示されます。

なぜこれが実現可能なのかというと、「WEBサーバ」の他に「アプリケーションサーバ」「データベース」が裏で動いているからです。この3つが連携することでそれぞれのユーザに合わせたWEBコンテンツが提供されるのです。
*この辺りは別の記事で詳しく解説します

ここでは、動的サイトを提供するには「WEBサーバ」の他に「アプリケーションサーバ」「データベース」が必要であることのみ覚えておいてください。(逆に静的サイトでは不要、「WEBサーバ」のみでOK)

代表的なWEBサーバソフトウェア

どうすれば「WEBサーバ」を構築できるのかというと、単にサーバにWEBサーバ用の「ソフトウェア」をインストールするだけです。これによりサーバは「WEBサーバ」となります。
代表的なWEBサーバソフトウェアを以下です。

Apache(アパッチ)

  • 1995年リリースの歴史あるOSS(オープンソース)
  • 安定性が非常に高い(20年以上の実績)
  • モジュールが120種類以上あり拡張性が高い
  • OS対応が広い(Linux / Windows / macOS など)
  • 動的コンテンツ(PHPなど)に強い

✔ 強み

  • 情報量が圧倒的に多く、初心者でも扱いやすい
  • 多くのレンタルサーバーで採用されている
  • モジュールが120種類以上あり拡張性が高い
  • OS対応が広い(Linux / Windows / macOS など)
  • 動的コンテンツ(PHPなど)に強い
  • 情報量が圧倒的に多く、初心者でも扱いやすい
  • 多くのレンタルサーバーで採用されている

nginx(エンジンエックス)

  • 2004年登場の高速Webサーバ
  • イベント駆動方式で大量アクセスに強い
  • 静的ファイル配信が非常に高速
  • リバースプロキシ・ロードバランサとしても優秀
  • 高トラフィックサイト向けの最適解
  • メモリ使用量が少なく、同時接続数に強い
  • CDNや大規模サービスで採用多数

IIS(アイアイエス)

  • Microsoft製のWebサーバ
  • Windows Server専用
  • GUIで操作でき、初心者でも扱いやすい
  • ASP.NETとの相性が抜群
  • Windows環境での統合管理がしやすい
  • セキュリティ機能が豊富

    用途に合わせたWEBサーバ用のソフトウェアを使用します。次回以降では実際にApacheやnginxで「WEBサーバ」を構築してみます。

まとめ

「WEBサーバ」について本記事では解説してみました。サーバの挙動の仕組みを理解しておくことは実際に、実務で構築を行う際や運用を行う際に必ず役に立ちます。「WEBサーバ」はどんなシステムでも必須(私も実際に何回か構築したことあります)ですので覚えておいて損はないです。

コメント

タイトルとURLをコピーしました