はじめに
今回は、Webサーバの代表的であるApache,Nginxを比較しそれぞれのサーバに対して知識を深めていきます。
まず、Webサーバとは?
Webサーバとは、パソコンやスマートフォンなどの端末からHTTP/HTTPSで送られたリクエストに応じてWebページやWebアプリケーションなどのコンテンツを提供するコンピュータプログラムのことを指します。私たちは、Webサーバのおかげで様々なホームページを見ることができます。
Apache(アパッチ)
Apacheは、無償で利用できるオープンソースのWebサーバソフトです。
高い信頼性と充実した機能を備えているため世界中で多く使われています。WindowsやLinuxなどの様々なOSで動作することができます。
Apacheのシェアは、『W3Techs』によれば、2023年5月時点においては、32.0%でNginxに次ぐシェアが高いWebサーバであります。
Apacheの初版は、1995年にリリースされました。それ以降、version「1.3」,「2.0」,「2.2」, 「2.4」と大きく更新していきました。現在は「2.4系」のみ推奨リリースされていています。
設定ファイルについて
設定ファイルは、/etc/apache2/apache2.conf と /etc/httpd/httpd.conf があります。
LPIC202では、主にhttpd.confの内容について触れています。
しかし、Debian系であるUbuntuでのApache2の設定ファイルはapache2.confになります。
httpd.confは主にRed Hat系であるCentOSなどのApache設定ファイルとなります。
Apacheのメリット
- 無償で利用ができ、高い信頼性と安定性がある
- モジュールを使用することで簡単に機能を拡張することができる
- 長い間、第一線で使われ続けため、技術情報が多い
- スムーズに処理を実行することができる
Apacheのデメリット
- メモリを大量に消費する
- 同時処理に弱い
Nginx(エンジンエックス)
NginxもApacheと同じく、オープンソースのWebサーバソフトです。
高い処理能力や並行処理能力を持ち、メモリを効率的に使用することができるため、処理速度が非常に高速な点が特徴です。
Nginxのシェアは、『W3Techs』によれば、2023年5月時点においては、34.4%と一番シェアが高いWebサーバであります。
Nginxは2002年にApacheで起こった『C10K問題』に対応べく登場しました。
Apacheとの主な違いは、Apacheはすべての接続に対してプロセスを使用する半面、Nginxは、シングルスレッドを採用しているため、一つのプロセスが複数の処理を行うことができます。
このようなアーキテクチャにより、大規模サイトなどアクセスが大量と予想されるサイトのWebサーバとして使われています。
Nginxのメリット
- 大量の同時接続に耐えることができ、はやい速度でコンテンツを提供することができる
- リバースプロキシやロードバランサの機能がある
- 柔軟にカスタマイズすることができる
Nginxのデメリット
- 重たいデータの扱いには不向き
- 機能が少ない
- ソースコードが複雑
ApacheとNginxどっち?
Apache:
- 少量の同時接続数で重い処理を必要とするコンテンツ
Nginx:
- 同時接続数が多く静的コンテンツが多いコンテンツ
おわりに
今回は、ApacheとNginxについて軽くまとめてみました。それぞれ、コンテンツによってサーバを決めていくのがよい判断であるということが分かりました。
Webサーバは他にも、CloudflareとOLiteSpeedといったサーバもあります。Apacheのシェアは年々減少傾向があり、Cloudflareのシェアが増加しています。時代の流れに遅れないためにも新しい技術に触れることが大切であります。