CONTENT
こんにちわ、こんばんわ。8月も終わりすっかり涼しくなってきましたね。
今回はWEBサーバについてのお話になります。
コーディングメインでアプリケーションを開発していると、意外とブラックボックスになっていて何をやっているの?という事もあるかと思います。
ページ上部に掲載している図が一般的な構成図になります。図の通り、WebアプリケーションはWebサーバとデータベースサーバとアプリケーションサーバの三層構成となります。
◎WEBサーバの役割とは?
Webサーバーとは、Webページを表示させるために必要な様々なファイルを保管、提供するサーバーとなります。PC、タブレットなどのクライアントからの要求に従いHTMLや画像の抽出・提供を行います。
APサーバ(アプリケーションサーバ)と混同しがちですが、APサーバはアプリケーションを実行する為のサーバになるので基本的にWEBサーバと必ずセットで利用されます。
静的コンテンツだけのサイトを公開するのみならWEBサーバ単体で実現も可能です。ブラウザからのリクエストを受け付ける窓口というイメージです。アクセスログから不正アクセスの検知も可能ですし、大量リクエストを受信した際には流量制限をかけて負荷を権限する、といった設定も可能です。
◎WEBサーバの種類
メジャーどころとしては以下が有名です。
・IIS(Internet Information Services)
米マイクロソフト(Microsoft)社のサーバ向けOSであるWindows Serverシリーズに同梱されているWebサーバソフトウェア。世界的に広く普及しているWebサーバの一つ。Windowsで運用するアプリケーションの場合、基本的にIISを採用しているのではないでしょうか。
・Apache
世界的に最も普及しているWebサーバ(HTTPサーバ)ソフトウェアの一つ。Apache Software Foundation(Apacheソフトウェア財団)が開発しており、オープンソースソフトウェアとして公開している。WebServerSurveyの直近の発表によるとシェア率は全盛期に比べて落ち込んでいるようですが、PHPでWEBアプリを作成する際には親和性が高い事から採用されているイメージです。
・Nginx
読み方はエンジンエックスです。(初見殺し)
Apacheと並ぶ人気Webサーバーソフトウェアの一つで、処理速度や機能面で優位性があり、シェア率もリニアに伸びてきており2022年8月時点でApacheを抜いてシェア第一位となるまで普及しています。Apacheと比較して大量処理が得意且つ、高速という利点が昨今の情報量過多な情報を処理するという要件にマッチしていると思われます。
今回は簡単に、役割とどんなミドルウェアがあるかのご紹介でしたが、システム開発ではお客様の要件によってコストやどの程度のパフォーマンス要件を満たす必要があるか?を考慮しつつ、何を採用してどういうアーキテクチャにしていくか検討する必要があります。
WEBサーバだけではなく、AP・DB含めて最適なシステム提案が出来るように皆様も日々精進していきましょう!
以上、良きエンジニアライフを♪