コンテンツにスキップ

クイックスタート

このページでは、インストール直後の状態から動くサーバーまで進めます。まず 8080 番ポートで静的サイトを配信し、次にリバースプロキシを置きます。

Pingclairfile という名前のファイルを作成します。

localhost:8080 {
file_server ./public
}

ファイルには site block が 1 つだけあります。localhost:8080 はこのサイトが応答するアドレス、file_server はファイル配信、./public は配信元ディレクトリで、実行時の作業ディレクトリからの相対パスです。

ターミナルウィンドウ
pingclair validate

validate は既定で ./Pingclairfile を読み込み、./Caddyfile も検出します。設定をコンパイルし、証明書パスのような意味的条件を検査して、問題があれば非ゼロで終了します。検証は助言ではありません。検証に失敗した設定は実行されません。

設定を書いている間は、次の 2 つのコマンドも役立ちます。

ターミナルウィンドウ
pingclair adapt --pretty # コンパイル後の JSON を表示
pingclair fmt --diff # 整形差分を表示(ファイルは書き換えない)
ターミナルウィンドウ
pingclair run Pingclairfile

プロセスは開いた listener をログに記録し、終了シグナルを受け取るまでリクエストを処理し続けます。

別のターミナルで:

ターミナルウィンドウ
curl -i http://localhost:8080/

配信されたファイルの ETagLast-Modified ヘッダーを伴う 200 が返るはずです。

リクエストが固まる場合は、システムプロキシがループバック通信を横取りしていないか確認し、curl --noproxy '*' で再試行してください。

5. 🔁 アプリケーションをプロキシする

Section titled “5. 🔁 アプリケーションをプロキシする”

site block を、3000 番ポートのバックエンドへ転送するリバースプロキシに置き換えます。

localhost:8080 {
reverse_proxy localhost:3000
}

同じコマンドで検証と実行をやり直します。応答はバックエンドから返るようになります。複数の上流、負荷分散ポリシー、ヘルスチェック、障害時の挙動は reverse_proxy を参照してください。

公開ドメイン名では証明書を自動取得します。

{
email admin@example.com
}
example.com {
reverse_proxy localhost:3000
}

自動 HTTPS には、サイトアドレスが公開名であることと、ACME チャレンジがサーバーに到達できること(通常は 80 番ポート)が必要です。プライベートなオリジンには tls internal を使い、ローカルの認証局から発行します。クライアントは $PINGCLAIR_TLS_STORE/internal/root.crt にあるルート証明書を信頼する必要があります。

インストーラーは systemd ユニットを作成し、pc コマンドで管理できます。

ターミナルウィンドウ
pc service start
pc service status
pc service reload # 再起動せずに設定を読み直す