[Caddy] 開発で IIS が使えなくなったので代替の Web サーバーを構築した

最近の Windows Update で、IIS が使用不能になってしまいました。(https://forest.watch.impress.co.jp/docs/news/2055701.html)まあすぐに対応パッチが出るでしょうが、仕事を止めるわけにもいかないので、代替となる Web サーバーを構築することにしました。

一番に挙げられるのが nginx です。多数の処理を高速にこなせるハイパフォーマンスですが、今回は Caddy というものを触ってみました。特長としては、設定が簡単ということです。

ここで使用するファイルはふたつのみ。実行ファイル(exe)と、設定ファイルです。

実行ファイルについてはダウンロードするだけなので問題無いとして、サーバーを有効化するには設定ファイルを指定して起動するだけです。

caddy.exe run --config "Caddyfile"

そして肝心の設定ファイル、Caddyfile という名前で登録するのが一般的のようです。

中身については、いたってシンプル。IIS のようにリライトや ARR をインストールしなくても使えます。また自己証明書も自動生成してくれるので、HTTPS 通信環境構築に手間がかかりません。

# ホストヘッダ
site.name {
    # 内部証明書を使う
    tls internal
    # ルートディレクトリを設定
    root * C:\\root\\dir
    # 静的ファイルを優先的に提供
    try_files {path} {path}/ /index.html
    # 静的ファイルを提供
    file_server
    # 動的コンテンツのリバースプロキシ設定
    @dynamic not file
    reverse_proxy @dynamic localhost:port {
        header_up Host {host}
        header_up X-Real-IP {remote_host}
    }
}

難点といえばサービスになっていないことですが、サービス化するツールが出てはいますし、直接実行しても充分使えるものです。今は直接起動して使っています。