Apacheとは?Webサーバーの役割を初心者向けに解説
サーバーについて勉強すると、**Apache(アパッチ)**という名前をよく見かけます。
特にTomcatと一緒に登場することが多く、「ApacheとTomcatって何が違うの?」となりやすいポイントです。
Apacheとは?
ITのサーバー分野で単にApacheと言う場合、多くはApache HTTP Serverを指します。
Apache HTTP Serverは、Apache Software Foundationによって開発されているオープンソースのWebサーバーソフトウェアです。
Webサーバーとは?
Webサーバーは、ブラウザなどのクライアントからHTTP/HTTPSのリクエストを受け取り、Webコンテンツなどを返します。
ブラウザ
|
| HTTP / HTTPS
v
Apache HTTP Server
|
| HTMLなど
v
ブラウザ
たとえばHTML、CSS、画像などの静的コンテンツを配信できます。
HTTPとHTTPS
Web通信では主にHTTPやHTTPSが利用されます。
HTTPSではHTTP通信をTLSによって保護します。
現在のWebサイトではHTTPSを利用することが一般的です。
Apache HTTP Serverでは、TLS証明書などを適切に設定することでHTTPS通信を提供できます。
静的コンテンツとは?
アクセスするたびにサーバー側で内容を生成する必要がないファイルを、一般に静的コンテンツと呼びます。
たとえば、
- HTML
- CSS
- JavaScriptファイル
- 画像
などです。
Apache HTTP ServerはこうしたファイルをWebクライアントへ配信できます。
Apacheは何でもできる?
Apache HTTP Serverには多数のモジュールがあり、さまざまな機能を追加できます。
たとえば、
- HTTPS
- 認証
- アクセス制御
- リバースプロキシ
- URLの書き換え
などです。
必要な機能を組み合わせてWebサーバーを構成できます。
リバースプロキシとは?
Apache HTTP Server自身がすべての処理を担当せず、受け取ったリクエストを後ろにある別のサーバーへ転送する構成があります。
ブラウザ
|
v
Apache HTTP Server
|
v
アプリケーションサーバー
このようにクライアントの代わりにバックエンドへリクエストを転送する役割をリバースプロキシと呼びます。
ApacheとTomcatの違い
ここが特に重要です。
Apache HTTP Serverは主にWebサーバーとしてHTTP/HTTPS通信を受け付け、コンテンツ配信やプロキシなどを担当します。
一方、Apache TomcatはJavaのWebアプリケーションを動かすために利用されるソフトウェアです。
名前にどちらもApacheと付いていますが、役割は異なります。
Apache HTTP Server
→ Webサーバー
Apache Tomcat
→ Java Webアプリケーションを実行するための
Servletコンテナ / Webコンテナ
ApacheとTomcatを組み合わせることもある
システムによっては、
利用者
|
v
Apache HTTP Server
|
v
Apache Tomcat
|
v
Java Webアプリケーション
のように組み合わせることがあります。
Apache HTTP Serverがフロント側でリクエストを受け、必要な通信をTomcatへ転送する構成です。
ただし、必ずApache HTTP ServerとTomcatをセットで利用するわけではありません。
Tomcat自身もHTTPリクエストを受け付ける機能を持っています。
nginxとの違い
Apache HTTP Server以外にもWebサーバーソフトウェアがあります。
代表例がnginxです。
Apacheとnginxでは内部構造や設定方法、得意とする用途などに違いがあります。
初心者の段階では、
Apacheもnginxも代表的なWebサーバーソフトウェア
と覚えておけば十分です。
Linuxとの関係
Apache HTTP ServerはLinux上でよく利用されます。
ただし、
Linux = Apache
ではありません。
LinuxはOS、Apache HTTP Serverはその上で動作するWebサーバーソフトウェアです。
ハードウェア / 仮想マシン
|
Linux
|
Apache HTTP Server
|
Webコンテンツ
この階層を理解すると、サーバー構成がかなり分かりやすくなります。
🍯 はちみつメモ
今日覚えることは1つだけ!
Apache HTTP Server = HTTP/HTTPSでWebコンテンツなどを提供する代表的なWebサーバーソフトウェア
まとめ
- Apacheと言う場合、多くはApache HTTP Serverを指す
- Apache HTTP ServerはWebサーバーソフトウェア
- HTTP/HTTPSのリクエストを受け付ける
- HTMLや画像などの静的コンテンツを配信できる
- リバースプロキシとしても利用できる
- LinuxはOS、Apacheはその上で動くソフトウェア
- Apache HTTP ServerとApache Tomcatは別のソフトウェア
次におすすめ
次は**「Tomcatとは?」**を学びます。