知っているようで知らない「Webサーバー」。その種類と役割に関する解説。
そもそも「Webサーバー」ってなに?
見ようと思っていたWebサイトが表示されず、画面をよく見たら「サーバーエラーが起こりました」などのメッセージが出るという経験をしたことがあると思います。
インターネットを利用したり、インターネットを活用したサービスを展開するためには「Webブラウザ」と「Webサーバー」は欠かせません。この2つは密接に関わり合っていて、どちらか一方が欠けてもユーザーはインターネットを快適に利用することができなくなってしまいます。
インターネットを使うことは現代社会においてすでに日常生活の一部となっており、中にはインターネットを利用するための仕組みについては意識したことがない方もいるかもしれません。ここで一度インターネット利用の基本である「Webブラウザ」と「Webサーバー」について確認してみましょう。
Webブラウザ
「Webブラウザ」とは、簡単に言うと「インターネットを見るためのアプリ」ということになります。今ご覧のこの画面を見るために使っているのは必ずWebブラウザです。Webブラウザを使わずにこの画面を見ることはできません。
パソコンやスマホ、タブレットなどを購入して使い始めた時に「インターネットを見よう」と思えば自然にインターネットを閲覧できたと思います。なぜなら、パソコンやスマホ、そしてタブレットには必ず一つは最初からWebブラウザが何か一つインストールされているからです。
WindowsPCでればMicrosoft EdgeやInternet Explorerがインストールされています。MacであればSafariがインストールされています。そしてiPhoneやiPadなどのApple製スマホやタブレットにもSafariがインストールされており、AndroidスマホもWindowsPCやMacでも共通して使えるGoogle Chromeが標準ブラウザとしてインストールされています。
Webサーバー
では「Webサーバー」とは何でしょうか?簡単に言うと「Webブラウザで閲覧可能なデータ(文字・文章や画像、動画など)を保存してある場所」ということになります。「Webで扱うデータをやり取りするサーバー」なので「Webサーバー」という呼び方になります。
インターネットでユーザーが閲覧する文字情報や動画・画像情報はすべてWebサーバーに保管されており、それぞれのデータがサーバー上で整理されている情報としてURLが割り当てられます。利用者はWebブラウザを通じて、見たい情報の場所であるURLを入力。ブラウザは入力された情報の閲覧を「リクエスト」としてWebサーバーに送り、Webサーバーはリクエストに対する「応答」として、設定されたURLを使って情報をブラウザで閲覧できるようにします。
「Webブラウザ」と「Webサーバー」の関係とは?
ここまで見てきたように、WebブラウザとWebサーバーは密接に関係していて、ペアのようになっています。
ブラウザはインターネットの画面を閲覧するためのものですが、もう少し掘り下げて考えてみましょう。ブラウザが実際に行っているのは「Webサーバーに対して閲覧の許可を要求するためのリクエストを送信」することです。つまり、Webブラウザは「Webサーバーとの通信を行い、閲覧者にインターネット上の情報を見せる」機能を担っているのです。
Webブラウザだけを開いてもインターネット上の情報は閲覧できませんし、Webサーバーを用意してデータを準備しても、WebブラウザでURLを入力し閲覧リクエストを送信できなければ見たいコンテンツを見ることはできません。
どちらもインターネットを利用するためには必要不可欠なものであるため、可能な限りブラウザとWebサーバーはセットで理解しておくほうが良いと言えます。
Webサーバーの種類とは?
Webサーバーはコンピューターの形状をしていますが、実際にはコンピューターにインストールされたサーバーアプリケーションというプログラムのことを指しています。
サーバーアプリケーションにもいくつか種類があり、目的やそれぞれの用途によって使い分けられるケースがあります。代表的なWebサーバーアプリケーションについてご紹介します。
(1)Apache
代表的なWebサーバーアプリケーションとして知られているのが「Apache」です。世界のWebサーバーのうち約50%が採用しているWebサーバーアプリケーションで、オープンソースアプリケーションとして無料で公開されています。
最大の特徴は前述の通り「オープンソース」であることに加えて、歴史が長いアプリケーションであることもあり対応するツールが豊富であること、法人・個人含めて多くのユーザーを抱えていることから様々なケーススタディを元に対応しやすい点があげられます。
対応するOSもLinuxやWindows、MacOSなど様々なOSに対応しており、各OSごとにそれぞれのOSに最適化されたツールを使って利便性を高めて使うことが可能になっています。
その他の特徴として次の4つがあります。
1. WordPressなどに代表されるCMSツールを利用する際にも設定が容易であること。
2. レンタルサーバー契約の各プランにも組み込まれていることが多い。
3. Webサイトの表示を高速にする最適化がすでに行われている。
4. セキュリティに関する対策が適時行われている。
(2)Nginx
NginxはApacheと並んでWebサーバーアプリケーションの最大手アプリの一つです。世界でのシェアはApacheに次ぐ第2位と言われています(2020年4月時点)。
Apacheが「一つのアクセスや要求に対する一つの応答」を得意としているのに対し、Nginxは「複数のアクセスや要求に対しても一つの応答にまとめることができる」という特徴を持っています。例えば検索エンジンで入力されるキーワードのように「スマホ 最新機種 発売日」のような複数のキーワードを絡めた情報がリクエストされても「○社の○モデル、○月○日発売」のような情報を、応答として返せるということになります。
基本的な機能面でNginxがApacheに大きく劣る点はあまりありませんが、以下のような点が相違点としてあげられます。
1. 大量に動画を扱うコンテンツやWebサイトの運用には若干不向きであると言われています。大量の動画コンテンツなどを扱うサイトなどの場合はApacheのほうが処理能力として優れていると言われており、Nginxはどちらかといえばテキストや検索エンジンなど、文字情報を処理するコンテンツを扱うほうが向いていると言われています。
2. 機能追加の簡便性に関してもApacheのほうが機能拡張はしやすいという評判ではありますが、Nginxでも専用の「モジュール」を追加すれば機能拡張・追加も比較的容易に行なえます。ただし、拡張ツールの豊富さや解説の充実度はApacheのほうが優れていると言われています。
3. 日本語での情報提供がNginxはやや少ないと言われています。ApacheはNginxに対して10年ほど前にリリースされたWebサーバーアプリケーションであるため、蓄積された情報量とそれに比例した日本語での翻訳済み情報が多くなっています。
NginxもApacheと同様にオープンソースのWebサーバーアプリケーションです。上記のような違いがある反面で、Nginxを選択して使うメリットとしては以下のことがあげられます。
1. 動作が高速
2. 検索リクエストなどの大量情報処理が得意
3. 拡張機能が豊富
4. 設定箇所が少なく、容易
まとめ
普段から日常的に触れてはいるものの、実際に細かい部分については知らないことも多いWebサーバーについて解説してきました。普段からサーバーに関わっている方にとっては知っていることばかりだったかもしれませんが、この記事で初めて知ったという方もいることと思います。ITエンジニアには今回解説したWebサーバーを専門的に取り扱うサーバーエンジニアという職種もあり、多くの人が活躍しています。この機会にWebサーバーとサーバーエンジニアについて知識を深めてみてください。