NginxからCaddyに変更した際の作業手順、デザイナーにもお勧めの簡単で高性能なWebサーバー
Post on:2020年10月20日
WebサーバーをNginxから、高性能で簡単に構築できるCaddyに変更した際の作業手順を紹介します。
Caddyはクラス最高のセキュリティを誇る、HTTPSを自動的にデフォルトで使用する唯一のサーバーです。証明書の自動更新やTLSクライアント認証なども備えており、Webサーバーとしてもファイルサーバーとしても利用できます。LinuxやBSDをはじめ、WindowsやmacOSでも動作します。
Goodbye Nginx, hello Caddy
by Hanna
はじめに
私は最近、私の個人サイトをNginxからCaddyに変更しました。Caddyについて調べてみたところ、さまざまな恩恵が得られるので試してみたいと思っており、以前から計画してきました。
この記事では、Caddyのセットアップ方法、良くなった点とちょっと戸惑った点について解説します。
Webサーバーの準備
Webサーバーの旅でまず最初にすることは、Webサーバーソフトウェア自体をインストールしてセットアップすることです。私のVPSはUbuntuなので、NginxやCaddyなどのインストールは以下のコマンドを実行するだけです。
1 |
sudo apt install -y <package> |
しかし、今回はそうではありませんでした。
サーバーがCloudflareの背後にあるため、CloudflareのDNSサポートを有効にするためにCaddyのプラグインを有効にする必要がありました。
それをするには、CaddyはGoで構築されているため、まずGo言語の最新バージョンをインストールしなければなりませんが、当時のUbuntuリポジトリの最新バージョンはGo 1.13で、CaddyはGo 1.14を必要としていました。これを修正するには、次のコマンドを実行してGo 1.14.2を取得し、最終的にパスにGoを追加しました。
1 |
wget -c https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local |
Goをインストールした後は、プラグインを使用してソースからWebサーバーを構築できるように、Caddyのxcaddyツールをインストールしました。このツールはかなり使いやすく、1つのコマンドで実行可能ファイルを構築できました。
1 |
xcaddy build --with github.com/caddy-dns/cloudflare |
コンパイルの完了後、実行ファイルを/usr/binに叩くだけで、Caddyがインストールされました。
Caddyの構成
Caddyをインストールした後に設定を行いましたが、この部分は最初は少し注意が必要でしたが、しばらくすると、何をする必要があるかが理解できました。最初にしなければならなかったことは、2つのパーミションを持つスコープ付きのCloudflare APIトークンを作成することです。これについてはここで読むことができます。
Webサーバーの実際の構成は、Nginx構成ファイルと比較して非常に簡単でした。以下は、私のWebサイトの現在の構成です。
1 2 3 4 5 6 7 8 |
<domain here> { root * /var/www/html file_server tls <email here> { dns cloudflare {env.CLOUDFLARE_API_TOKEN} } } |
後はCaddyにCaddyfileを使用するように指示するか、コマンドでjsonに変更して使用することができるので、私は以下のコマンドで後者を実行しました。
1 |
caddy adapt --config Caddyfile >> /etc/caddy/config.json |
そしてついに、私は簡単なコマンドでWebサーバーを起動することができました。
1 |
sudo caddy start --config /etc/caddy/config.json |
Systemdの構成
Caddyをバックグラウンドで実行し、systemdに管理させたいと思ったので、簡単なサービスを作成しました。
1 2 3 4 5 6 7 8 9 10 11 |
[Unit] Description=Caddy Web Server Requires=network.target [Service] ExecStart=/usr/bin/caddy run --config /etc/caddy/config.json ExecReload=/usr/bin/caddy reload --config /etc/caddy/config.json ExecStop=/usr/bin/caddy stop [Install] WantedBy=multi-user.target |
終わりに
Caddyをインストールするのは確かに旅でしたが、Caddyには証明書の自動更新、自動https/ssl、より新しい技術で構築されていること、よりシンプルな構成とプラグインのインストールなどの利点があり、最終的にはそれだけの価値があったと思います。Caddyについて詳しくはこちらをご覧ください。
ここまで読んでくれて、ありがとうございます。
sponsors