Windows Server上でCaddyをWebサーバーとして実行する方法

Windows ServerでCaddyを実行するには、ネイティブのWindows実行ファイルをインストールし、CaddyfileでWebサイトのフォルダを指定し、CaddyをWindowsサービスとして登録します。この設定により、静的ファイルが配信され、パブリックドメインのHTTPS証明書を自動的に取得および更新できます。Dockerはオプションです。以下の手順ではコンテナランタイムは必要ありません。

これらのコマンドはC:\Caddyプレースホルダードメインを使用します。ファイアウォールルールを作成したり、サービスをインストールしたりする際は、PowerShellを管理者として実行してください。

1. Windows版Caddyをダウンロードする

Caddyの公式ダウンロードページを開き、サーバーのアーキテクチャに合ったWindowsビルドを選択してください。GitHubリリースを使用する場合は、対応するWindowsアセットを選択してください。ファイルを解凍またはコピーしてくださいcaddy.exe。CaddyC:\Caddyのインストールガイドには、静的バイナリと署名検証についても記載されています。

WindowsのエクスプローラーでC:\Caddyを開き、caddy.exeアプリケーションを表示させる。
Caddyの実行ファイルは、C:\Caddyなどの専用フォルダに保存してください。

2. ウェブサイトフォルダを作成する

PowerShellで、ドキュメントルートと小さなテストページを作成します。準備ができたら、このテストファイルをサイトのファイルに置き換えてください。

New-Item -ItemType Directory -Force C:\Caddy\site | Out-Null
Set-Content -Path C:\Caddy\site\index.html -Value '<h1>Hello from Caddy</h1>' -Encoding utf8
PowerShellとファイルエクスプローラーで、C:\Caddy 内のサイトフォルダーと index.html を表示しています。
サイトフォルダには、Caddyが提供するページが含まれています。

3. ローカルのCaddyfileを作成する

メモ帳を開きますnotepad C:\Caddy\Caddyfile。ファイルを作成するかどうかを尋ねられたら、「はい」を選択します。次の設定を入力し、拡張子Caddyfileなしで保存します.txt。

:8080 {
    root * C:/Caddy/site
    file_server
}

このrootディレクティブはディレクトリを設定し、file_serverその中のファイルを配信します。ローカルポートを高く設定することで、パブリックなHTTPおよびHTTPSポートに切り替える前に簡単にテストできます。詳細については、公式のrootおよびfile_serverのリファレンスを参照してください。

メモ帳に、Windows Webサイトのルートとfile_serverディレクティブを含む、ポート8080用のCaddyfileが表示されている。
Caddyfileを読みやすくするために、Windowsのパスにはスラッシュを使用してください。

4. サイトを検証およびテストする

PowerShellでCaddyフォルダーに移動し、構成を検証して、Caddyをフォアグラウンドで起動します。

Set-Location C:\Caddy
.\caddy.exe validate --config .\Caddyfile
.\caddy.exe run --config .\Caddyfile

そのウィンドウを開いたまま、サーバー上のURLにアクセスしてください。テストの見出しが表示されるはずです。このローカルチェックでは意図的にHTTPを使用しています。パブリックドメインのファイルを変更する前に、http://localhost:8080フォアグラウンドプロセスを停止してください。Ctrl+C

PowerShell で Caddy を実行し、ブラウザで localhost:8080 のテストページを表示する
サーバーを一般公開する前に、ローカルのテストページが正しく読み込まれることを確認してください。

5. 実際のドメインを設定します

C:\Caddy\Caddyfileテスト設定を編集し、ご自身のドメインとドキュメントルートに置き換えてください。

www.example.com {
    root * C:/Caddy/site
    file_server
}

www.example.com管理しているドメインに置き換えてください。サイトアドレスにホスト名が含まれている場合、Caddy は公開 TLS 証明書を管理し、HTTP を HTTPS にリダイレクトできます。自動発行には、ホスト名がこのサーバーに解決され、関連するチャレンジ トラフィックがそこに到達する必要があります。本番稼働前に、 Caddy の自動 HTTPS 要件を確認してください。

ドメイン名とC:\Caddy\siteドキュメントルート用に構成されたCaddyfileを表示するメモ帳
訪問者が入力するホスト名を使用してください。localhostなどのローカルアドレスは使用しないでください。

6. 公開ウェブトラフィックを許可する

DNS Aレコードと、サーバーがIPv6をサポートしている場合はAAAAレコードを作成し、ドメインをサーバーのパブリックアドレスにマッピングします。管理者権限でPowerShellウィンドウを開き、TCPポート80と443に対するWindowsファイアウォールの受信ルールを追加します。

New-NetFirewallRule -DisplayName "Caddy HTTP and HTTPS" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 80,443

また、サーバーの前面にあるクラウドファイアウォール、ルーター、またはネットワークセキュリティグループでこれらのポートを許可してください。Caddy は HTTP 処理と一般的な ACME 検証にポート 80 を使用し、HTTPS にポート 443 を使用します。UDP 443 は HTTP/3 ではオプションです。Microsoft はNew-NetFirewallRule コマンドレットについてドキュメント化しています。

TCPポート80と443が入力されたWindows Defenderファイアウォールの受信ルールウィザード
Caddyが標準的なWebトラフィックと証明書の検証に必要な2つのTCPポートを許可します。

7. CaddyをWindowsサービスとして実行する

ドメイン構成はそのままにして、管理者権限で PowerShell ウィンドウを開きます。公式の Caddy サービス ガイドはsc.exe、WinSW をサポートしています。直接サービスの場合は、明示的な構成パスで実行可能ファイルを登録し、起動します。

sc.exe create caddy start= auto binPath= '"C:\Caddy\caddy.exe" run --config C:\Caddy\Caddyfile'
sc.exe start caddy

Windows サービスはサービス アカウントで実行されます。そのアカウントがサイトファイルと構成ファイルを読み取り、管理対象の証明書マテリアルを格納する Caddy の永続データ ディレクトリに書き込むことができることを確認してください。このディレクトリを使い捨てのものとして扱わないでください。Caddy のディレクトリ規則とWindows サービスの手順を参照してください。

PowerShellでCaddy Windowsサービスが正常に起動したことを示す表示
サービスを登録したら、PowerShellまたはWindowsサービスコンソールからサービスを開始してください。

8. HTTPSを確認し、トラブルシューティングを行う

サービスの状態を で確認してからsc.exe query caddy、https://www.example.com実際のホスト名を使用して開いてください。サイトが読み込まれない場合は、DNS レコード、Windows およびネットワーク ファイアウォール、ポート 80 または 443 が他のプログラムによって既に占有されていないかを確認してください。リスナーは次のように検査できます。

Get-NetTCPConnection -State Listen -LocalPort 80,443

Caddy が証明書またはチャレンジのエラーを報告する場合は、パブリック DNS がこのサーバーを指していること、および受信 TCP 80 と 443 がこのサーバーに到達していることを確認してください。設定を編集した場合は、ファイルを再度検証してから、Caddy を再起動してくださいC:\Caddy\caddy.exe reload --config C:\Caddy\Caddyfile。Caddy の入門ガイドとトラブルシューティング ガイドには、その他の設定とエラーについて記載されています。

Windowsサービスコンソールの横にHTTPSサイトがブラウザに表示され、Caddy Webサーバーが実行されている。
公開サイトがHTTPSを使用していること、およびCaddyサービスが稼働していることを確認してください。

コメントを残す

FotoSketcherで写真を絵画、スケッチ、漫画に変換

FotoSketcherで写真を絵画、スケッチ、漫画に変換

FotoSketcher Studioを使えば、写真を絵画、鉛筆画、漫画に変換できます。エフェクトの選択方法、プレビューの調整方法、作品の保存方法を学びましょう。

オーディオ識別ツールで音声ファイルを詳細に分析・識別する

オーディオ識別ツールで音声ファイルを詳細に分析・識別する

オーディオ識別子がビットレート、エンコーダー、タグについて何を明らかにするのか、従来のワークフローがどのように機能するのか、そして現在利用可能なツールの中で、ファイルの検査や楽曲の識別に使えるものはどれなのかを学びましょう。

My Photo Index:Windows用オープンソース写真整理ツール

My Photo Index:Windows用オープンソース写真整理ツール

My Photo Indexは、ローカル画像のタグ付け、評価、閲覧を行うための、Windows向けの旧来の写真カタログツールです。その機能、互換性の制限、および現在もサポートされている代替ツールについてご確認ください。

Attribute Changerを使用してファイルとフォルダの属性、日付、時刻を変更する

Attribute Changerを使用してファイルとフォルダの属性、日付、時刻を変更する

Attribute Changerを使用して、Windowsファイルの属性とタイムスタンプを編集したり、JPEG EXIF写真の日付を更新したり、バッチ変更を安全にプレビューしたりする方法を学びましょう。

Windows 10で各モニターに異なる壁紙を設定する方法

Windows 10で各モニターに異なる壁紙を設定する方法

Windows 10の各モニターに個別の壁紙を設定し、ディスプレイを識別し、画像のフィットを調整し、モニターの選択肢が見つからない場合のトラブルシューティングを行います。

pViewer:最小限の画像ビューアとマンガ&コミックリーダー

pViewer:最小限の画像ビューアとマンガ&コミックリーダー

pViewerの機能、写真モードとコミックモードの仕組み、ダウンロードすべきWindows版、そして旧バージョンと改訂版の違いについて学びましょう。

NeoDownloader:パラメータ設定とウェブサイトからの画像の一括ダウンロード

NeoDownloader:パラメータ設定とウェブサイトからの画像の一括ダウンロード

NeoDownloaderプロジェクトの作成方法、クロール範囲の選択方法、画像フィルタと保存先の設定方法、バッチダウンロードの確認方法を学びましょう。

Windows 7および8でホットキーを使って次のデスクトップ背景に切り替える方法

Windows 7および8でホットキーを使って次のデスクトップ背景に切り替える方法

Windows 7または8用のスライドショーを設定し、簡単なVBScriptショートカットを作成して、キーボードショートカットキーを割り当てて次の壁紙に進めるようにします。

XnConvert:エフェクトの適用と画像フォーマットの一括変換

XnConvert:エフェクトの適用と画像フォーマットの一括変換

XnConvertを使えば、エフェクトの適用、写真のリサイズ、画像フォーマットの一括変換が可能です。出力設定の選択、編集内容のプレビュー、オリジナル画像の保護も行えます。

PickMeApp: 保存された設定でWindowsプログラムを転送する

PickMeApp: 保存された設定でWindowsプログラムを転送する

PickMeAppを使って、インストール済みのWindowsアプリケーションを別のPCに移行しましょう。TAPパッケージの仕組み、設定の取得方法、転送できない可能性のある項目について学びます。