Nginx vs Apache vs Caddy — Webサーバーの選び方【2026年】

VPS・サーバー選定中級
NginxApacheCaddyVPSWebサーバー

本記事はアフィリエイト広告(A8.net)を含みます。価格・仕様は2026年6月時点の目安です。最新は各公式サイトでご確認ください。

TL;DR

Webサーバーを選ぶとき、Nginx・Apache・Caddyの3択で迷う場面があります。結論だけ先に示します。

  • 共有ホスティングやWordPress環境: Apacheが最も枯れていて、.htaccess による柔軟な設定が使えます。
  • 高トラフィックのリバースプロキシ・静的ファイル配信: Nginxが実績・エコシステムともに豊富です。
  • VPS一台で手早くHTTPSまで通したい: Caddyが自動HTTPSで設定量を大幅に減らせます。

3つとも現役のプロダクションソフトウェアです。「何を優先するか」で選ぶものが変わります。以下で各サーバーの特徴と判断基準を整理します。


3つのWebサーバーの位置づけ

Nginx — 高速・軽量・リバースプロキシの定番

Nginxは2004年にIgor Sysoevが「C10K問題(同時接続1万件)」への対応を念頭に開発したWebサーバーです。現在はNginx, Inc.(F5傘下)が開発を主導しています。

イベント駆動モデルを採用しているため、多数の接続を少ないプロセス数で捌く設計になっています。静的ファイルの配信とリバースプロキシの2つの用途で特に広く使われています。

設定は nginx.confserver ブロックの組み合わせで記述します。細かな制御が可能な一方、.htaccess のようなディレクトリ単位の上書きはできません。設定はすべてメインファイル(またはその include)に書き、変更のたびに reload が必要です。

Apache — 最も歴史が長く共有ホスティングの標準

Apache HTTP Serverは1995年から存在する最古参のWebサーバーです。Apache Software Foundationがメンテナンスしています。共有ホスティング環境のほぼ全てでApacheが使われているのは、.htaccess ファイルによる「ディレクトリ単位の設定上書き」がホスティング事業者にとって扱いやすいためです。

プロセスモデル(prefork)またはスレッドモデル(workerevent)を選べます。モジュールシステムが充実しており、mod_rewrite(URLリライト)、mod_php(PHP直接実行)、mod_ssl(HTTPS)など、長年の実績があるモジュールが揃っています。

WordPressや古いCMSが「Apache推奨」としているのも、これらのモジュールと .htaccess との組み合わせを前提とした設計が多いためです。

Caddy — 自動HTTPSと設定の簡潔さを重視した後発

Caddyは2015年に登場したGoで書かれたWebサーバーです。公式サイトにある通り、設計思想の中心は「デフォルトでHTTPS」にあります。設定ファイル(Caddyfile)にドメイン名を書くだけで、起動時にLet’s EncryptまたはZeroSSLから証明書を自動取得し、更新も自動で行います。Certbotなどの外部ツールが不要です。

Caddyfile の記法はNginxの設定より平易で、リバースプロキシの典型的な設定ならば数行で済みます。ただし、Nginxのような細粒度のチューニングや、Apacheのような豊富なモジュールエコシステムはまだ持ちません。2026年現在、個人〜中小規模のVPSでの利用実績が着実に増えています。


比較表 — 用途・設定・エコシステム

観点NginxApacheCaddy
HTTPSCertbot等で設定(自動更新は別途タイマー)mod_ssl + Certbot等設定にドメインを書くだけで自動取得・更新
設定ファイルnginx.conf + server ブロック(全て集中管理)httpd.conf + .htaccess(分散可)Caddyfile(最も短く書ける)
ディレクトリ単位の設定上書き不可(location ブロックに統一)可(.htaccess不可
リバースプロキシ定番・実績豊富可能(mod_proxy)だが主用途ではないデフォルト動作が親切で設定が短い
静的ファイル配信高効率・大規模実績あり問題なく使える問題なく使える
モジュール/拡張豊富(ただしコンパイル時組込みが多い)非常に豊富(mod_* が多数)プラグインあり・まだ成熟段階
WordPress/古いCMSfastcgi_pass でPHP-FPMに渡す構成mod_php / .htaccess と相性が良いPHP-FPMに渡す構成は可
設定の学習コスト中(明示的で読みやすいが量が増える)中〜高(分散するほど追いにくくなる)低(短く書けるが機能の把握に慣れが要る)
大規模・高負荷の実績豊富ある(ただし高並列はNginxが主流)増加中・大規模事例はまだNginxより少ない
ライセンスBSD-likeApache License 2.0Apache License 2.0

用途別の選択

共有ホスティングやWordPress環境

Apacheを選びます。理由は2つです。

  1. 多くの共有ホスティングがApacheを前提として構築されており、.htaccess の書き換えルールがそのまま動きます。
  2. WordPressの Permalinks 設定やプラグインの一部が、ApacheのURL書き換えルール(.htaccessmod_rewrite)を前提として生成されます。

VPS上にWordPressを自分で建てる場合でも、これまでApacheで運用してきた設定資産がある、または参考にする記事が多い、という理由でApacheを選ぶのは合理的です。

高トラフィックの本番環境・リバースプロキシ

Nginxを選びます。1台のVPSで複数のアプリをドメイン別に振り分けるリバースプロキシの用途では、Nginxが最も整備された選択肢です。細かいキャッシュ制御、ロードバランシング、ストリーミング、WebSocket転送などを設定ベースで制御できます。

NginxをリバースプロキシとしてVPSに設定する具体的な手順はNginxリバースプロキシ入門を参照してください。

VPS一台で手早くHTTPSを通したい

Caddyを選びます。「とにかく早くHTTPSで公開したい」「証明書の更新を意識したくない」という場合、Caddyの自動HTTPSが最も工数を下げます。Certbotを別途セットアップして更新タイマーを確認する、という手順がまるごと不要になります。

設定例を示します。2つのアプリをドメインで振り分け、HTTPSも自動で通す Caddyfile です。

app.example.com {
    reverse_proxy 127.0.0.1:3000
}

blog.example.com {
    reverse_proxy 127.0.0.1:8080
}

Nginxで同じことをする場合と比べると、proxy_set_header 群の明示、Certbotの発行コマンド、更新タイマーの確認が不要になります。個人開発・検証環境・小規模サービスには十分な選択肢です。


リバースプロキシ用途での3つの違い

リバースプロキシとして使う場合に、設定の差が最も目立ちます。

Nginx のリバースプロキシ設定(最小例)

server {
    listen 80;
    server_name app.example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host              $host;
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

proxy_set_header を明示的に書く必要があります。書かないとアプリ側でクライアントのIPやプロトコルを正しく取れません。WebSocketを使う場合は Upgrade / Connection ヘッダの転送と proxy_http_version 1.1 の追加も必要です。詳細はNginxリバースプロキシ入門で解説しています。

Apache のリバースプロキシ設定(mod_proxy 使用)

<VirtualHost *:80>
    ServerName app.example.com

    ProxyPreserveHost On
    ProxyPass        / http://127.0.0.1:3000/
    ProxyPassReverse / http://127.0.0.1:3000/
</VirtualHost>

mod_proxymod_proxy_http を有効化する必要があります(a2enmod proxy proxy_http)。ProxyPreserveHost OnHost ヘッダを転送します。Apacheもリバースプロキシとして動作しますが、この用途での採用事例はNginxほど多くありません。

Caddy のリバースプロキシ設定(Caddyfile)

app.example.com {
    reverse_proxy 127.0.0.1:3000
}

X-Forwarded-For などのヘッダ付与とWebSocketアップグレードはCaddyがデフォルトで行います。HTTPSも自動です。設定量が最も少ない一方、細かい挙動を制御するには Caddyfile のディレクティブを調べる必要があります。


HTTPS設定の比較

3つの差が最もわかりやすく出る箇所です。

Nginx: Certbotの --nginx プラグインで自動化できます。証明書の取得・設定書き換え・80→443リダイレクトの追記まとめてやってくれますが、Certbot自体のインストールとタイマーの確認は別途必要です。Let’s Encryptの詳細はLet’s Encrypt無料SSL証明書の取得と自動更新で解説しています。

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d app.example.com
sudo certbot renew --dry-run   # 更新動作の確認

Apache: mod_ssl と Certbot の --apache プラグインを使います。手順はNginxと概ね同じです。

sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d app.example.com

Caddy: 追加の手順はありません。Caddyfile にドメインを書いてCaddyを起動すれば、証明書の取得と更新が自動で行われます。ポート80と443の両方をCaddyが管理する必要があるため、他のサーバーと共存させる場合は注意が必要です。


実践: どのVPSで試すか

3つのWebサーバーとも、Ubuntu / Debian 系のVPSに apt install nginx / apt install apache2 / Caddy公式の手順でインストールできます。ConoHa VPSとXserver VPSは国内で実績のある選択肢です。

  • ConoHa VPS: 時間課金で「試して消す」使い方がしやすいです。Webサーバーの検証や設定の学習に向いています。
  • Xserver VPS: 月額課金で長期運用に向きます。WordPressや複数サービスを同居させる本番環境として使いやすい構成です。

最初は小さいプランで1つのWebサーバーを動かし、設定と挙動を確認してから本番に使うのが安全です。


まとめ

用途推奨理由
共有ホスティング・WordPressApache.htaccess との親和性・CMS前提の設定資産が活きる
リバースプロキシ・高トラフィック本番Nginx実績・エコシステム・細かいチューニングの自由度
VPS一台で素早くHTTPSCaddy自動HTTPS・設定が短い・Certbot不要
静的ファイル配信のみNginx または Caddyどちらも問題なし。既存のVPS構成に合わせる
既存のNginx資産があるNginx設定を流用できる・学習コストが最小

3つとも2026年現在も活発にメンテナンスされているサーバーです。「どれが最も優れているか」ではなく、「自分の構成で何が要るか」で選ぶのが実用的な判断基準です。迷うときは、構成がシンプルならCaddy、既存資産があるかリバースプロキシを本格的に使うならNginx、共有ホスティングや既存CMS環境ならApacheから始めると判断しやすいです。


各サービス公式

関連記事

VPS・サーバー選定Nginxリバースプロキシ入門 — 1台のVPSで複数サービスを公開する【2026年】VPS・サーバー選定PostgreSQLパフォーマンスチューニング: 中小企業DBの遅延を解消する手順VPS・サーバー選定高可用性(HA)構成の最小コスト実装:2台のVPSでフェイルオーバーを組む
記事一覧に戻る