caddy - 自動HTTPSを備えた高速なマルチプラットフォームWebサーバー

(Fast, multi-platform web server with automatic HTTPS)

Created at: 2015-01-14 03:45:03
Language: Go
License: Apache-2.0

キャディー

プロジェクト_


HTTPS上のすべてのサイト

Caddyは、デフォルトでTLSを使用する拡張可能なサーバープラットフォームです。


Twitterの@caddyserver キャディフォーラム
ソースグラフのキャディ Cloudsmith

リリースドキュメントヘルプを見る

メニュー

搭載
CertMagic

特徴

  • Caddyfileを使用した簡単な構成
  • ネイティブJSON構成による強力な構成
  • JSONAPIを使用した動的構成
  • JSONが気に入らない場合は、アダプターを構成します
  • デフォルトの 自動HTTPS
    • ZeroSSLLet'sEncryptfor public name
    • 内部名とIP用の完全に管理されたローカルCA
    • クラスタ内の他のCaddyインスタンスと調整できます
    • マルチイシュアフォールバック
  • TLS /OCSP/証明書関連の問題が原因で他のサーバーがダウンしても稼働し続ける
  • 何兆ものリクエストを処理し、何百万ものTLS証明書を管理した後、本番環境に対応
  • 数万のサイトに拡張...そしておそらくそれ以上
  • HTTP / 1.1、HTTP / 2、および実験的なHTTP/3のサポート
  • 高度に拡張可能な モジュラーアーキテクチャにより、Caddyは肥大化することなく何でもできます
  • 外部依存関係がなくても(libcでさえも)どこでも実行できます
  • Goで書かれた、他のサーバーよりも高いメモリ安全性が保証されている言語
  • 実際に使うのが楽しい
  • だから、もっとたくさん発見する

インストール

最も簡単なクロスプラットフォームの方法は、GitHubリリースからダウンロードして、実行可能ファイルをPATHに配置することです。

その他のインストールオプションについては、https://caddyserver.com/docs/installを参照してください。

ソースからビルド

要件:

開発用

注:これらの手順では、適切なバージョン情報は埋め込まれません。そのためには、次のセクションの指示に従ってください。

$ 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
実際のユーザー名に置き換えます。注意してください、そしてあなたが何をしているのかを知っている場合にのみこれをしてください!私たちは、Goツールやコンピューターではなく、Caddyの使用方法を文書化する資格があるだけであり、これらの手順は便宜上提供しているだけです。ご自身の責任でご自身のコンピュータを使用する方法を学び、必要な調整を行ってください。

バージョン情報および/またはプラグイン付き

ビルダーツール

xcaddy
を使用して、 ...

$ xcaddy build

...次の手順は自動化されています。

  1. 新しいフォルダを作成します。
    mkdir caddy
  2. それに変更します:
    cd caddy
  3. Caddyのmain.goを空のフォルダーにコピーします。追加するカスタムプラグインのインポートを追加します。
  4. Goモジュールを初期化します。
    go mod init caddy
  5. (オプション)Pin Caddyバージョン:gitタグ、commit、またはブランチ名に
    go get github.com/caddyserver/caddy/[email protected]
    置き換えます。
    version
  6. (オプション)インポートを追加してプラグインを追加します。
    _ "import/path/here"
  7. コンパイル:
    go build

クイックスタート

Caddy Webサイトには、チュートリアル、クイックスタートガイド、リファレンスなどを含むドキュメントがあります。

経験レベルに関係なく、すべてのユーザーがCaddyの使用に慣れるためにスタートガイドを実行することをお勧めします。

1分しかない場合は、Webサイトにいくつかのクイックスタートチュートリアルから選択できます。ただし、クイックスタートチュートリアルを終了した後、ソフトウェアがどのように機能するかを理解するために、より多くのドキュメントをお読みください。🙂

概要

CaddyはHTTPSサーバーとして最もよく使用されますが、長時間実行されるGoプログラムに適しています。何よりもまず、Goアプリケーションを実行するためのプラットフォームです。キャディの「アプリ」は、キャディモジュールとして実装されている単なるGoプログラムです。2つのアプリ(

tls
および
http
)は、Caddyに標準で付属しています。

Caddyアプリは、自動化されたドキュメント、 APIを介した適切なオンライン構成変更、および他のCaddyアプリとの統合から即座に恩恵を受けます。

JSONはCaddyのネイティブ構成言語ですが、Caddyは構成アダプターからの入力を受け入れることができます。構成アダプターは基本的に任意の構成形式(Caddyfile、JSON 5、YAML、TOML、NGINX構成など)をJSONに変換できます。

Caddyを構成する主な方法はAPIを使用することですが、構成ファイルを使用する場合は、コマンドラインインターフェイスでそれらもサポートされます。

Caddyは、既存のWebサーバーと比較して、前例のないレベルの制御を公開します。Caddyでは、通常、HTTPハンドラーやTLSハンドシェイクからストレージメディアまですべてに電力を供給する、メモリ内の初期化されたタイプの実際の値を設定します。キャディはまた、途方もなく拡張可能であり、他のWebサーバーよりも大幅に改善された強力なプラグインシステムを備えています。

この設計の力を活用するには、構成ドキュメントがどのように構成されているかを知る必要があります。Caddyの構成構造の詳細については、ドキュメントサイトを参照してください。

他のWebサーバーのように、CLIフラグ、環境変数、および構成ファイルに分散するのではなく、Caddyの構成のほぼすべてが単一の構成ドキュメントに含まれています。これにより、サーバー構成の管理がより簡単になり、隠れた変数/要因が減少します。

完全なドキュメント

当社のウェブサイトには完全なドキュメントがあります:

https://caddyserver.com/docs/

ドキュメントもオープンソースです。あなたはここでそれらに貢献することができます:https ://github.com/caddyserver/website

ヘルプを得る

  • Caddyを使用しているすべての専門家または企業は、支援が必要になる前にArdanLabsを通じてサポート契約を結ぶことを強くお勧めします。

  • スポンサーシップは大いに役立ちます!キャディがあなたの会社に利益をもたらしている場合は、スポンサーシップを検討してください!これは、プロジェクトの寿命を延ばすためのフルタイムの仕事に資金を提供するのに役立つだけでなく、あなたの顧客や潜在的な顧客にとってあなたの会社の見栄えにもなります!

  • 個人は、 https://caddy.communityのコミュニティフォーラムで無料でヘルプを交換できます。人々は彼らの暇な時間と善意から助けを与えることを忘れないでください。助けを得る最良の方法は、最初にそれを与えることです!

問題追跡システムは、バグレポートと機能のリクエスト、つまり実用的な開発アイテムにのみ使用してください(サポートの質問は通常フォーラムで参照されます)。

Matthew Holtは、ブリガムヤング大学でコンピューターサイエンスを学びながら、2014年にCaddyの開発を開始しました。(「Caddy」という名前が選ばれたのは、このソフトウェアがWebを提供するという面倒でありふれたタスクを支援し、複数のものをまとめて整理するための単一の場所でもあるためです。)すぐにHTTPSを自動的に使用する最初のWebサーバーになりました。デフォルトでは、現在は数百人の寄稿者がいて、数兆のHTTPSリクエストを処理しています。

「キャディー」という名前は商標登録されています。ソフトウェアの名前は「Caddy」であり、「CaddyServer」や「CaddyServer」ではありません。それを「Caddy」と呼んでください。明確にしたい場合は、「CaddyWebサーバー」と呼んでください。Caddyは、StackHoldingsGmbHの登録商標です。

Caddyは、 StackHoldingsの会社であるZeroSSLのプロジェクトです。

DebianパッケージリポジトリホスティングはCloudsmithによって丁寧に提供されています。Cloudsmithは、完全にホストされた、クラウドネイティブのユニバーサルパッケージ管理ソリューションであり、組織があらゆる形式、あらゆる場所で、完全な自信を持ってパッケージを作成、保存、共有できるようにします。