1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[1分でわかる]Apacheってなんだ?

Posted at

[1分でわかる]Apacheってなんだ?

一言で言うと

世界で最も長く使われているWebサーバー。柔軟性と拡張性が強み。


Apacheとは

Apache HTTP Server(アパッチ)

1995年に登場した、世界初の本格的なオープンソースWebサーバー。
Apache Software Foundation が開発・維持。

20年以上にわたりWebサーバーのシェアNo.1だった
(現在はnginxと並ぶ)。

名前の由来

┌─────────────────────────────────────────────────────────┐
│                                                         │
│  「A patchy server」(パッチだらけのサーバー)         │
│                                                         │
│  NCSA HTTPd というサーバーに多くのパッチを当てて       │
│  作られたことから「A patchy(パッチィ)」→「Apache」  │
│                                                         │
│  ※ ネイティブアメリカンの「アパッチ族」にも           │
│    敬意を込めているとも言われる                        │
│                                                         │
└─────────────────────────────────────────────────────────┘

Apacheの特徴

┌─────────────────────────────────────────────────────────┐
│                                                         │
│  ① .htaccess による柔軟な設定                          │
│     → ディレクトリ単位で設定を変更可能                │
│     → サーバー再起動なしで設定反映                    │
│     → 共有レンタルサーバーで重宝                      │
│                                                         │
│  ② 豊富なモジュール                                    │
│     → mod_rewrite(URL書き換え)                      │
│     → mod_ssl(HTTPS)                                │
│     → mod_wsgi(Python連携)                          │
│     → mod_php(PHP連携)                              │
│                                                         │
│  ③ 長い歴史と豊富なドキュメント                        │
│     → 問題が起きても情報が見つかりやすい              │
│     → 書籍、チュートリアルが充実                      │
│                                                         │
└─────────────────────────────────────────────────────────┘

図解:Apacheの立ち位置

【静的ファイル配信】
ブラウザ ──→ Apache ──→ HTML/CSS/JS/画像

【PHP】
ブラウザ ──→ Apache ──→ mod_php ──→ PHPアプリ

【Python(mod_wsgi)】
ブラウザ ──→ Apache ──→ mod_wsgi ──→ Django/Flask

インストール

# Ubuntu / Debian
sudo apt update
sudo apt install apache2

# CentOS / RHEL(httpdという名前)
sudo dnf install httpd

# Mac (Homebrew)
brew install httpd

# 起動
sudo systemctl start apache2    # Ubuntu
sudo systemctl start httpd      # CentOS
sudo systemctl enable apache2   # 自動起動

基本的な設定ファイル

【Ubuntu / Debian】
/etc/apache2/
├── apache2.conf        # メイン設定
├── sites-available/    # サイト設定(有効化前)
├── sites-enabled/      # サイト設定(有効化後)
├── mods-available/     # モジュール(有効化前)
└── mods-enabled/       # モジュール(有効化後)

【CentOS / RHEL】
/etc/httpd/
├── conf/httpd.conf     # メイン設定
├── conf.d/             # 追加設定
└── modules/            # モジュール

.htaccessの例

# /var/www/html/.htaccess

# URLリライト(mod_rewrite)
RewriteEngine On
RewriteRule ^old-page$ /new-page [R=301,L]

# ディレクトリ一覧を非表示
Options -Indexes

# BASIC認証
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

語呂合わせ

「Apache = ア・パッチ(継ぎ接ぎ)で歴史を紡ぐ」

多くのパッチを当てて進化してきた、歴史あるサーバー。


nginxとの比較

┌──────────────────┬─────────────────┬─────────────────┐
│                  │ Apache          │ nginx           │
├──────────────────┼─────────────────┼─────────────────┤
│ 歴史             │ 1995年〜        │ 2004年〜        │
├──────────────────┼─────────────────┼─────────────────┤
│ アーキテクチャ   │ プロセス/スレッド│ イベント駆動    │
├──────────────────┼─────────────────┼─────────────────┤
│ .htaccess        │ ◎ 対応         │ × 非対応       │
├──────────────────┼─────────────────┼─────────────────┤
│ モジュール数     │ 非常に多い      │ 少なめ          │
├──────────────────┼─────────────────┼─────────────────┤
│ 同時接続         │ やや苦手        │ 得意            │
├──────────────────┼─────────────────┼─────────────────┤
│ 静的ファイル     │ 高速            │ 超高速          │
├──────────────────┼─────────────────┼─────────────────┤
│ PHP連携          │ mod_phpで簡単   │ FastCGI経由     │
├──────────────────┼─────────────────┼─────────────────┤
│ 情報量           │ 非常に多い      │ 多い            │
└──────────────────┴─────────────────┴─────────────────┘

メリット・デメリット

┌─────────────────────────────────────────────────────────┐
│ 【メリット】                                            │
├─────────────────────────────────────────────────────────┤
│ ・.htaccessで柔軟に設定変更                            │
│ ・モジュールが豊富(何でもできる)                     │
│ ・長い歴史、ドキュメント・情報が豊富                   │
│ ・PHPとの相性が抜群                                    │
│ ・レンタルサーバーのほとんどがApache                   │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│ 【デメリット】                                          │
├─────────────────────────────────────────────────────────┤
│ ・大量の同時接続でメモリ消費が大きい                   │
│ ・nginxより静的ファイル配信が遅い                      │
│ ・設定が複雑になりがち                                 │
│ ・.htaccessのパースがオーバーヘッドになることも        │
└─────────────────────────────────────────────────────────┘

まとめ

項目 内容
正式名称 Apache HTTP Server
読み方 アパッチ
強み 柔軟性、豊富なモジュール、.htaccess
定番構成 Apache + mod_wsgi + Django
設定ファイル /etc/apache2/ または /etc/httpd/

次回は「uWSGI」─ 高機能なWSGIサーバー

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?