
高速かつ拡張可能なマルチプラットフォームHTTP/1-2-3ウェブサーバー(自動HTTPS対応)
Caddy は、デフォルトで TLS を使用する拡張可能なサーバープラットフォームです。
最も簡単でクロスプラットフォームな始め方は、GitHub Releases から Caddy をダウンロードし、実行ファイルを PATH に配置することです。
その他のインストール手順については、オンラインドキュメントをご覧ください。
要件:
注: これらの手順では適切なバージョン情報が埋め込まれません。そのためには、次のセクションの手順に従ってください。
$ git clone "https://github.com/caddyserver/caddy.git"
$ cd caddy/cmd/caddy/
$ go build
Caddy を実行すると、設定で特に指定しない限り、低いポートにバインドしようとすることがあります。OS がこれに昇格した権限を要求する場合、新しいバイナリにその権限を与える必要があります。Linux では、次のように簡単に実行できます: sudo setcap cap_net_bind_service=+ep ./caddy
一時的なバイナリのみを作成する go run を使いたい場合でも、付属の setcap.sh を使って次のように実行できます:
$ go run -exec ./setcap.sh main.go
setcap のためにパスワードを入力したくない場合は、sudo visudo を使って sudoers ファイルを編集し、ユーザーアカウントがパスワードなしでそのコマンドを実行できるようにします。例えば:
username ALL=(ALL:ALL) NOPASSWD: /usr/sbin/setcap
username を実際のユーザー名に置き換えてください。十分注意し、何をしているのか理解している場合にのみこれを行ってください! 私たちは Caddy の使い方を文書化する資格はありますが、Go ツールやあなたのコンピュータについてはそうではありません。これらの手順は便宜のために提供しているだけです。ご自身の責任でご自身のコンピュータの使い方を学び、必要な調整を行ってください。
その後、すべてのモジュールまたは特定のモジュールでテストを実行できます:
$ go test ./...
$ go test ./modules/caddyhttp/tracing/
ビルダーツール xcaddy を使用すると...
$ xcaddy build
...以下の手順が自動化されます:
mkdir caddycd caddygo mod init caddygo get github.com/caddyserver/caddy/v2@version の version を git タグ、コミット、またはブランチ名に置き換えます。_ "import/path/here"go build -tags=nobadger,nomysql,nopgxCaddy のウェブサイトには、チュートリアル、クイックスタートガイド、リファレンスなどを含むドキュメントがあります。
経験レベルに関係なく、すべてのユーザーが Getting Started ガイドを読んで Caddy の使い方に慣れることをお勧めします。
時間が少ししかない場合は、ウェブサイトにいくつかのクイックスタートチュートリアルがありますので、そこから選んでください! ただし、クイックスタートチュートリアルを終えた後は、ソフトウェアの仕組みを理解するために、さらにドキュメントを読んでください。🙂
Caddy は HTTPS サーバーとして最もよく使われますが、長時間実行される任意の Go プログラムに適しています。何よりもまず、Go アプリケーションを実行するためのプラットフォームです。Caddy の「アプリ」は、Caddy モジュールとして実装された単なる Go プログラムです。tls と http の 2 つのアプリが Caddy に標準で同梱されています。
Caddy アプリは、自動ドキュメント、API 経由のオンラインでの優雅な設定変更、および他の Caddy アプリとの統合の恩恵を即座に受けられます。
JSON は Caddy のネイティブな設定言語ですが、Caddy は設定アダプターからの入力も受け付けることができ、基本的に任意の設定形式を JSON に変換できます: Caddyfile、JSON 5、YAML、TOML、NGINX 設定など。
Caddy を設定する主な方法はその API を通じてですが、設定ファイルを好む場合は、コマンドラインインターフェースもそれらをサポートしています。
Caddy は、既存のどのウェブサーバーと比較しても前例のないレベルの制御を提供します。Caddy では、通常、HTTP ハンドラーや TLS ハンドシェイクからストレージ媒体まで、すべてを支えるメモリ内の初期化された型の実際の値を設定します。Caddy はまた、他のウェブサーバーに対して多大な改善をもたらす強力なプラグインシステムを備え、非常によく拡張できます。
この設計の力を活用するには、設定ドキュメントがどのように構造化されているかを知る必要があります。詳細については、Caddy の設定構造についてのドキュメントサイトをご覧ください。
Caddy の設定のほぼすべては、他のウェブサーバーのように CLI フラグや環境変数、設定ファイルに散在するのではなく、単一の設定ドキュメントに含まれています。これにより、サーバー設定の管理がより簡単になり、隠れた変数や要因が減少します。
私たちのウェブサイトには完全なドキュメントがあります: