Caddy2 を centos7 にインストール

webブラウザといえば、Apache, Nginxが有名です。
CaddyとはGo言語で記述されているOSSのwebサーバーです。
Caddyの最大のメリットは自動でHTTPSを有効にしてくれます。

Apache, NginxでもLet’sEncryptを使えば無料でHTTPSを有効にできますが、それがもっと簡単になります。

Caddy2は2020年5月4日にリリースされたばかりでまだまだ情報が少ないですが、インストールしてみます。

OSはcentos7です。
HTTPSのテストをするために、事前にドメインを取得しておきます。

今回はドメインをsakurai-caddy.testtotest.comとしました。

Caddy2 のインストール

Download Caddyの手順通りに行います。 今回はcurlのほうでダウンロードします。

$ curl -OL "https://github.com/caddyserver/caddy/releases/latest/download/ASSET"

(これダウンロードしたファイルの中身をcatで確認するとNot Foundなんですよね…..)

インストールしていきます

$ sudo yum install yum-plugin-copr
$ sudo yum copr enable @caddy/caddy
$ sudo yum install caddy

次にHTTPS quick-startのページをみて行っていきます。

$ curl "https://cloudflare-dns.com/dns-query?name=sakurai-caddy-v2.testtotest.com&type=A" \-H "accept: application/dns-json"

{"Status":0,"TC":false,"RD":true,"RA":true,"AD":false,"CD":false,"Question":[{"name":"sakurai-caddy-v2.testtotest.com","type":1}],"Answer":[{"name":"sakurai-caddy-v2.testtotest.com","type":1,"TTL":300,"data":"54.150.233.210"}]}

実行すると上のようにstatusが表示されます。

次にCaddyfileを作成します。

$ cd #今はホームディレクトリで
$ sudo vim Caddyfile #拡張子はありません

sakurai-caddy-v2.testtotest.com #ドメイン名を入れる

respond "Hello, privacy!" #" "の中が表示される。

これが作成できたら実行します。

$ sudo cadder run

これを実行するとフロントをで実行されます。
バックグラウンドで実行したい時はこちら

$ sudo cadder start #開始
$ sudo cadder stop #終了

では自分のドメインへブラウザからアクセスしてみましょう!!

Let’sEncryptによるHTTPSが有効になっています。
ちなみにHTTPでアクセスしようとすると、HTTPSにリダイレクトされます。

Caddyfileについて

今回のやり方では、Caddyfileがあるディレクトリでのみサーバーの起動や終了、リロードが行えます。
Apacheでいうドキュメントルートが設定されていない(私が設定していない?)ので、Caddyfileを作成したディレクトリが公開されることになります。これが非常に危険。

まずはhtmlなどを表示する方法です。

Caddyfileを編集します。

$ sudo vim Caddyfile

sakurai-caddy-v2.testtotest.com

file_server browse

このように記述するとファイルブラウザとして利用出来ます。
さぁここで問題になるのが、Caddyfileの場所です。現時点ではホームディレクトリにあるので、ホームディレクトリにあるファイルやディレクトリが下記画像のようにすべて(.sshなども)公開されてしまいます。
なので場所を変える必要があります。Apacheで慣れている/var/www/などに配置してもいいと思います。

ディレクトリにhello.htmlなどを作成すればhtmlファイルを表示することが出来ます。
JavaScriptが動くことは確認しました。
PHPが動くかな?と思い試してみましたが、phpを動作させることは出来ませんでした。
公式ドキュメントに記載がみつけられなかたので、サポートされていないのかな?と思います。(静的ファイル配信をサポートしているのなのでそういう仕様?)

おわりに

今より開発が進んでさまざまなことが出来るかもしれませんが、今のところはファイルブラウザとして使うのがよいのかな?と思います。
ともあれ、特別な設定をしなくてもHTTPSを有効に出来るのはとても便利ですね