Caddy vs nginx:HTTPS、設定、どちらを選ぶか

Caddy vs nginx

Caddy vs nginx:自動HTTPSと設定を並べて比較 | We.Inc

Caddyとnginxを実際の用途で比較します。自動HTTPS、静的サイト、リバースプロキシ、負荷分散、WebSocketを取り上げ、あなたのドメイン用に両方の設定を書き出すビルダーも用意しました。

最大の違いは証明書です。Caddyはデフォルトですべてのサイトを HTTPS で配信し、Let's EncryptやZeroSSLから証明書を取得・更新し、HTTPからのリダイレクトも自動で行います。nginxでは、ACMEクライアントや別途用意するACMEモジュールで取得した証明書ファイルを自分で用意する必要があります。Caddyfileのほうが短く書け、nginxはより細かい制御と、はるかに長い実績を持っています。

日常的な用途でのCaddyとnginxの比較

多くの比較は機能の一覧で終わります。ここでは、ドメインとアプリのポートを入力すると両方の設定が得られるので、同じ結果を得るためにそれぞれのサーバーがどれだけ書かせるかを正確に確認できます。ビルダーの下には、よくある用途の設定を並べたスニペットと、それぞれが向いている場面についての率直な解説があります。

よくある質問

Caddyはnginxをそのまま置き換えられますか?

静的サイト、リバースプロキシ、シンプルな負荷分散なら、たいていは置き換えられ、設定も短くなります。多数のサードパーティモジュール、複雑なマップやリライトのロジック、チューニングしたキャッシュを使う大規模な構成には、Caddyで1対1に対応するものがないこともあるので、1サイトずつ書き換えてテストしましょう。

今のnginxは自動HTTPSに対応していますか?

ACMEを実装したngx_http_acme_moduleがありますが、デフォルトではビルドに含まれていません。別の動的モジュール(nginx-module-acmeパッケージ)としてインストールし、発行元を設定する必要があります。これがなければ、証明書は外部のクライアントから取得します。

Caddyでlocalhostにも HTTPS を使えますか?

使えます。localhostや内部向けの名前に対して、Caddyは独自のローカル認証局を作成し、そこから証明書を発行します。システムから、そのルート証明書を信頼するかどうか一度だけ確認されることがあります。

性能が良いのはどちらですか?

速度の数値は、ハードウェア、TLSの設定、ワークロードによって大きく変わるため公開していません。どちらも一般的なWebサイトやAPIなら余裕をもって処理できます。純粋なスループットが重要なら、自分のサーバーで自分のトラフィックパターンを使ってベンチマークしましょう。

Caddyは負荷分散とヘルスチェックに対応していますか?

対応しています。reverse_proxyに複数のアップストリームを列挙し、round_robinやleast_connなどのlb_policyを選び、能動的なチェックにはhealth_uri、受動的なチェックにはfail_durationを追加します。ポリシーを指定しない場合、Caddyはアップストリームをランダムに選びます。

自動HTTPSが実際にカバーする範囲

nginxのほうが向いている場合

Caddyのほうが向いている場合

3台のアプリサーバーに負荷分散する

Caddyfile

3つのバックエンドにラウンドロビンで振り分け、/healthz に対してバックグラウンドでヘルスチェックを行います。

ラウンドロビンがデフォルトです。オープンソース版は、失敗したリクエストを通じた受動的なヘルスチェックしか行いません。

WebSocketのプロキシ

Caddyfile

reverse_proxyがアップグレードを行い、追加の行なしで双方向のトンネルを開いたままにします。

UpgradeヘッダーとConnectionヘッダーは明示的に転送する必要があります。nginx 1.29.7より前のバージョンでは proxy_http_version 1.1 も必要です。

サーバーの役割

静的ファイルを配信

アプリへのリバースプロキシ

ファイルのあるフォルダー

このマシン上のアプリのポート

レスポンスを圧縮

wwwをwwwなしのドメインへリダイレクト

Caddyfile

{n}行

無料で始める · クレジットカード不要

関連: ガイド|Webマーケティングと集客を学ぶ

製品

ご利用いただける方

機能

リソース

会社情報

サイトマップを見る