【あぱっち】

Apache とは?

💡 世界で最も長く使われてきた老舗Webサーバ、.htaccessで柔軟に設定可能
📌 このページのポイント
Apache HTTP Server の構造 🖥️ クライアント ブラウザ HTTPリクエスト Apache HTTP Server コア(リクエスト処理エンジン) mod_ssl mod_rewrite mod_proxy mod_php モジュールで機能を自由に拡張 コンテンツ HTML/CSS 画像/動画 PHP/CGI
Apache HTTP Server のモジュール構成とリクエスト処理
ひよこ ひよこ

ApacheってNginxとどう使い分けるの?

ペンギン先生 ペンギン先生

大量の同時接続・高速な静的ファイル配信・リバースプロキシはNginxが有利。.htaccessによるディレクトリ単位の設定(共有ホスティングで必要)・PHPとの組み合わせ・豊富なモジュールはApacheが使いやすい場面も多い。どちらも優秀で用途次第。

ひよこ ひよこ

.htaccessって何?

ペンギン先生 ペンギン先生

Apacheの設定をディレクトリ単位で上書きできる設定ファイル。リダイレクト・URL書き換え(mod_rewrite)・アクセス制限・MIMEタイプ設定などを.htaccessに書くことで、サーバ全体の設定を変えずにフォルダごとに動作を変えられる。

ひよこ ひよこ

mod_rewriteって何に使うの?

ペンギン先生 ペンギン先生

URLを書き換えるモジュール。「/product/123」へのリクエストを「/product.php?id=123」に内部的に書き換えたり、HTTPHTTPSリダイレクトしたりするのに使われる。WordPress・EC-CUBEなどのCMSが.htaccessとmod_rewriteでURLルーティングを実現している。

ひよこ ひよこ

Apacheのパフォーマンスチューニングってどうやるの?

ペンギン先生 ペンギン先生

まず重要なのはMPM(マルチプロセッシングモジュール)の選択だよ。preforkは1リクエスト1プロセスで安定だけど重い。workerやeventはスレッドベースで軽量。特にevent MPMはKeep-Alive接続をうまく処理できるから、現在の推奨だね。実は.htaccessは便利だけど、リクエストのたびにディレクトリ階層を遡ってファイルを探すからパフォーマンスに影響するんだ。本番環境では.htaccessを無効化してhttpd.confに直接書くのがベストプラクティスだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
Apacheって出てきたら「オープンソースの老舗Webサーバ、.htaccessとモジュールで柔軟に設定できる」と思えばOK!
📖 おまけ:英語の意味
「Apache HTTP Server」 = Apache HTTPサーバ
💬 1995年にNCSA httpdのパッチ集(a patchy server)から誕生したとされる説が有名だが、Apache Software Foundation自身はApache部族への敬意と説明している
← 用語集にもどる