| キャディー | |
|---|---|
| 原作者 | マシュー・ホルト |
| 初回リリース | 2015年4月28日 (2015年4月28日) |
| 安定版リリース | |
| リポジトリ | github |
| 書かれた | 囲碁[ 2 ] |
| オペレーティング·システム | BSD 系、Linux、Plan 9、macOS、Windows |
| プラットフォーム | IA-32 (i386)、x86-64、ARM、MIPS、S390X |
| タイプ | Webサーバー、リバースプロキシサーバー |
| ライセンス | アパッチ2 |
| Webサイト | キャディサーバー |
Caddy は、 Goで書かれた、拡張可能なクロスプラットフォームのオープンソースWeb サーバーです。
「Caddy」という名前は、面倒な作業を補助するヘルパーであると同時に、複数の部分を簡素化したシステムに整理する方法という意味も持ちます。[ 3 ] Caddyは、REST APIを使ってオンラインで更新できる単一の統合構成を使用して、長期実行サービス(「アプリ」)を展開するための拡張可能なプラットフォームです。[ 4 ] Caddyの公式ディストリビューションには、 HTTPサーバー、TLS自動化、PKIアプリなどの標準モジュールセットが付属しています。[ 5 ] Caddyは、自動HTTPS機能で最もよく知られています。[ 6 ] [ 7 ]
Caddyは、コマンド、コアライブラリ、構成モジュールの3つの主要コンポーネントで構成されています。[ 8 ]コマンドは、プログラムを実行するための拡張可能なインターフェースです。また、構成ファイルのロード、共通モードの実行、インストールされたプラグインの管理、関連するユーティリティ関数の提供も行えます。コアライブラリには、構成のロード、アンロード、管理を行うAPIがありますが、[ 9 ]コアライブラリ自体は特に便利な機能はありません。Caddyの機能のほとんどは、Caddyの構成構造を拡張するプラグインであるモジュールによって提供されています。たとえば、HTTPサーバーはモジュールです。[ 10 ] Caddyモジュールは、さまざまな長期サービス、Web標準、その他の便利な機能を実装しています。
Caddyの入力はJSON設定ドキュメント[ 11 ]であり、RESTful HTTP APIを介してオープンソケット経由で受信されます。[ 12 ] [ 6 ] HTTPクライアントがない場合、Caddyのコマンドラインインターフェースを使用して設定ファイルを読み込むことができます。[ 13 ]設定アダプタを使用して、他の設定形式をJSONに変換できます。既存のアダプタには、コマンドラインでファーストクラスのサポートを持つCaddyfile、YAML、TOML、Nginx、その他の形式が含まれます。[ 14 ] [ 6 ]
管理ソケットを介して設定情報を受信すると、Caddyは指定されたすべてのモジュールの設定情報をデコードし、すべてのアプリモジュールの実行を開始します。[ 6 ]アプリモジュールがプロビジョニングされる際に、アプリモジュール自体が使用するモジュールをロードしてプロビジョニングすることがあります。例えば、HTTPサーバーはHTTPリクエストを処理するためにHTTPハンドラーモジュールを使用するアプリモジュールです。これらのハンドラーは、機能を実装するためにさらに他のモジュールを使用する場合があります。[ 15 ]これらのモジュールはすべて、設定ロードフェーズでプロビジョニングされます。[ 8 ]
プラグインは、Caddyバイナリに直接静的にコンパイルすることでインストールされます。[ 3 ] [ 6 ]プラグインがない場合、Caddyのネイティブ構成構造には、管理とログ記録のための基本的なオプションのみが存在します。[ 11 ]その他の機能はすべてアプリモジュールによって提供される必要があります。公式のCaddyディストリビューションには、数十の標準モジュールが同梱されています。[ 5 ]その他のモジュールは、プロジェクトのウェブサイトから追加するか、[ 16 ]コマンドラインツールを使用するxcaddyか、カスタムビルドを手動でコンパイルすることで追加できます。[ 17 ] [ 18 ]
HTTPサーバーは、公式Caddyディストリビューションに標準で付属するアプリモジュールです。[ 10 ]主に静的ファイルサーバー[ 19 ]と負荷分散リバースプロキシとして使用されます。[ 20 ] CaddyのHTTP機能の基本はGoの標準ライブラリの実装を使用していますが、[ 21 ]さまざまな拡張機能とカスタマイズがミドルウェアとして利用可能であり、構成パラメータを通じて公開されています。[ 6 ]
デフォルトでは、ルートに空でないホストマッチャーがある場合、自動的にTLSが使用されます。[ 22 ]これらはCaddyがサービスを提供しているサイト名またはIPアドレスとみなされるため、Caddyは設定されたホスト名とIPアドレスの証明書を自動的に取得・更新します。このように自動HTTPSが有効化されると、CaddyはHTTPリクエストを対応するHTTPSの場所にリダイレクトします。[ 23 ]
CaddyはTLS証明書を自動的に取得するために、自動証明書管理環境プロトコルを実装し、 Let's Encryptなどのサービスと通信できるようにしています。[ 24 ]
Caddyプロジェクトの最初のgitコミットは2014年でした。[ 25 ]
Caddyバージョン1.0は2019年4月24日にリリースされました。[ 25 ]その時点で、プロジェクトには250人以上の貢献者がいました。[ 25 ]
Caddyバージョン2は2020年5月5日にリリースされました。[ 7 ] Ars Technicaのレビュー担当者によると、バージョン2の設定形式はCaddyの以前のメジャーリリースとはほとんど互換性がありませんが、 Apache Web Serverよりも設定ファイルの構文がシンプルになっているとのことです。[ 7 ] [ 26 ]
- CoreDNS 、クラウドネイティブコンピューティング財団のプロジェクト。[ 27 ]
{{cite book}}: CS1 メンテナンス: 場所の発行元が見つかりません (リンク)