Managed Service Column <システム運用コラム>

(Apache/Nginx/IIS)Webサーバー機能

Category: 入門編

2020.07.23

Webページを表示するためにはWebサーバー機能は欠かせない存在ですが、仕組みが複雑で難しいという声もよく聞かれます。Webサーバー自体の種類も多いので、どのWebサーバー機能を使えば良いのか迷っているという方もいるのではないでしょうか。

今回は、Webサーバー機能の役割をはじめ、世界でシェアの高いApache(アパッチ)、Nginx(エンジンエックス)、IIS(アイアイエス)の機能紹介や、それぞれのWebサーバーの比較について解説します。

Webサーバー機能とは

Webサーバーの機能
Webサーバーの機能

Webサーバーとは、パソコンやスマートフォンなどの端末からHTTP/HTTPSで送られたリクエストに対してHTML、CSS、JavaScriptなどの情報を返す役割を持ったソフトウェアのことを指します。一般的に、Webサーバーへ接続するためにはブラウザを使用します。

私たちがWebサイトを閲覧しようとするとき、ブラウザはどのWebサーバーが目的のページを提供しているのか検索を行ないます。合致するWebサーバーを見つけると、そのWebサーバーに対してWebページを表示するために必要な情報をリクエストします。

Webサーバーはリクエストを受けた情報をサーバー内から検索して、ブラウザに対して検索結果を送信します。そこでようやくブラウザが受け取った情報を再構成して、Webページを表示できるのです。

通常、通信のポート番号は決まったものを使用します。ポート番号を簡単に説明すると、扉(Webページ)の番号をイメージすると良いでしょう。Web上でアクションをする際は、扉の番号が必要になり、それがポート番号になります。メールを送る場合のポート番号、Webページを見るためのポート番号などそれぞれに割り振られており、HTTPは80番、HTTPSは443番が一般的です。

ただし、他のポート番号を使うと通信が一切できないというわけではありませんが、ユーザー側の設定によっては特定のポート番号以外の通信は遮断されてしまうこともあるため、前述の2種類を使用するのが無難です。

そして、Webサーバーにはさまざまな種類があり、メジャーなものとしてはApache、Nginx、IISなどがあります。

よく使われるWebサーバー機能の紹介

よく使われるWebサーバー機能
よく使われるWebサーバー機能

世界においてさまざまなWebサーバー機能が提供されていますが、次に紹介するApache、Nginx、IISの3種類で全体のおよそ80%近くのシェアを占めています(ソース)。

特に歴史のあるApacheと年々シェアを拡大しているNginxは、他の追随を許さない高い人気を見せています。ここでは、3つのWebサーバー機能について紹介します。

Apache(アパッチ)

OSS(オープンソースソフトウェア)のWebサーバーで、正式名称は「Apache HTTP Server」です。イギリスのApacheソフトウェア財団が保持しており、WebサーバーソフトウェアであったApache HTTP Serverを開発するために発足された財団になります。

Apacheのリリース後、世界中に広く普及していき、2020年7月現在で全世界のおよそ40% のWebサーバーはApacheが占めています(ソース)。1995年にリリースされてから20年以上使用されており、その実績から信頼性が高いOSSといえるでしょう。

Apacheのシェアの高さはオープンソースであることから開発者が多く、Apacheで扱うことのできる機能が豊富で、幅広い動作環境に対応していることなどに由来しています。LinuxやUNIX、WindowsやMac OSなど、ユーザーの環境を選ばない点も魅力です。

また、主要なLinux OSに採用されていることもシェアが高い要因の1つといえるでしょう。国内外の多くのレンタルサーバーにも、最初からApacheが導入されていることが多いです。

Apacheはマルチプロセッシングモジュールを採用しており、1つのスレッドごとに新しいプロセスを起動する方式です。動的なコンテンツの処理に適しており、CGIやPHPなどに向いています。

Nginx(エンジンエックス)

Nginxはアメリカのサンフランシスコに本社をかまえるNGINX, Inc.によって開発されたWebサーバーです。現在はF5ネットワークスに買収されています。Nginxは2002年に登場した比較的新しいWebサーバーになりますが、開発者にとても人気があります。Apacheと同じOSSで、自由に機能を開発することができます。

大容量のデータを処理することを想定して開発されているため、アクションが起こったときに処理を行なうイベント駆動型を取り入れています。メモリを効率的に使用できるので、処理速度が非常に高速な点が魅力です。

Nginxはキャッシュサーバー不要でHTMLや画像などをキャッシュできるので、静的コンテンツを扱うのに適したWebサーバーといえます。シングルスレッドを採用しており、1つのプロセスが複数の処理を行ないます。

Apacheで起こったC10K問題に対応すべく開発されたことから、高負荷に強いという特徴もあります。C10K問題とは、ApacheなどのWebサーバーが通信する端末の数が約1万台を超えると、ハードウェアの性能に関わらずレスポンスが大きく低下するという問題です。処理能力や同時接続数などの負荷への耐久力は、Apacheよりも高いといわれています。

IIS(アイアイエス)

IISはWindows用のWebサーバー機能です。Microsoft社が提供しているため、Windowsに特化しています。ApacheやNginxと違い、IISはOSSではありません。

IISはWindowsベースなので、情報表示においてグラフィックを多用しているので、命令文を入力して実行させるCUI(キャラクタ・ユーザ・インターフェース)よりも、直感的に操作可能なGUI(グラフィカル・ユーザ・インターフェース)である点も大きなメリットといえます。

Linuxなどのようにコマンドを扱う必要がなく、直感的に開発を行なうことができます。また、ApacheやNginxに比べて日本語のマニュアルが充実しているため、英語が苦手な人でも利用しやすいでしょう。

Windows系の開発環境と相性が良いので、ASP.NETのフレームワークなどと連携を考えているならおすすめです。動的なWebページを手軽に作成できるので、Webアプリケーションを効率良く開発できます。

今回紹介してきた3種類の中では比較的難易度がやさしめで、初めて利用する人でも使いやすいWebサーバー機能といえます。

Apache Nginx IIS を比較!

Apache Nginx IIS を比較!
Apache Nginx IIS を比較!

ここで、Apache、Nginx、IISの特徴を比較してみます。それぞれにメリットがあるので、どのWebサーバー機能が自分に合うのか試してみると良いでしょう。

ApacheはOSSで、小規模なWebサイトはもちろん、数万アクセスの大規模なサイトにも対応しています。PHPやCGIなどの動的コンテンツが得意で、どんな言語でも扱うことができます。サーバーは基本的にLinuxを使用しますが、Windowsでも動かすことは可能です。同時接続数は中程度までが適切とされています。

NginxはOSSで、中規模~大規模のWebサイトに適しています。静的コンテンツを得意としており、どんな言語でも開発することができます。サーバーは基本的にLinuxを使用しますが、Windowsでも動作します。大量のアクセスにも耐えうるほど負荷に強いので、ある程度同時接続数が多い場合でも耐えられます。

IISはMicrosoftが提供しているWebサーバー機能のため、OSSではありません。安定性が高く、大規模のWebサイトに向いています。Windows系の開発環境と親和性が高く、net系を使った言語に効果的です。Linuxを使用した場合動かないことはありませんが、サーバーはWindowsの使用が基本とされています。同時接続数は中程度までのアクセスなら耐えられる仕様となっています。

おわりに

ここまで、代表的な3つのWebサーバー機能やその仕組みについて解説してきました。普段私たちが何気なく閲覧しているWebページもWebサーバー機能によって作られており、Webサーバー機能はWebページの表示に重要な役割を果たしています。

Apache、Nginx、IISは、それぞれ異なる特徴があるため、開発したいアプリケーションや必要な機能に合わせて選ぶことが大切です。

本記事を参考にして、どのWebサーバー機能を使うか検討してみてください。

Tag: Webサーバー サーバー

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php