googleが開発している次世代のインターネットプロトコルquicを使用できるcaddyをインストールする。
https://caddyserver.com/
https://github.com/mholt/caddy/
ダウンロードは公式サイトかgitから
https://caddyserver.com/download
https://github.com/mholt/caddy/releases/tag/v0.11.0
自分のプラットフォームにあったものをダウンロードする。今回はcaddy_v0.11.0_linux_amd64.tar.gzを選択。
mkdir caddy cd caddy wget https://github.com/mholt/caddy/releases/download/v0.11.0/caddy_v0.11.0_linux_amd64.tar.gz tar zxvf caddy_v0.11.0_linux_amd64.tar.gz
Caddyfileという名前の以下の内容のファイルを作成する。Caddyfileの詳細は以下を参照。
https://caddyserver.com/tutorial/caddyfile
0.0.0.0:2015 { gzip tls /etc/letsencrypt/live/example.com/fullchain.pem /etc/letsencrypt/live/example.com/privkey.pem root /var/www/html/example.com/ header / Access-Control-Allow-Origin * }
起動。
caddy -conf ../path/to/Caddyfile
サービス化
ここを参照する。
https://github.com/mholt/caddy/tree/master/dist/init/linux-systemd
sudo cp caddy /usr/local/bin sudo chown root:root /usr/local/bin/caddy sudo chmod 755 /usr/local/bin/caddy sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy sudo groupadd -g 33 www-data sudo useradd \ -g www-data --no-user-group \ --home-dir /var/www --no-create-home \ --shell /usr/sbin/nologin \ --system --uid 33 www-data sudo mkdir /etc/caddy sudo chown -R root:root /etc/caddy sudo mkdir /etc/ssl/caddy sudo chown -R root:www-data /etc/ssl/caddy sudo chmod 0770 /etc/ssl/caddy sudo cp /path/to/Caddyfile /etc/caddy/ sudo chown root:root /etc/caddy/Caddyfile sudo chmod 644 /etc/caddy/Caddyfile
wget https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service sudo cp caddy.service /etc/systemd/system/ sudo chown root:root /etc/systemd/system/caddy.service sudo chmod 644 /etc/systemd/system/caddy.service sudo systemctl daemon-reload sudo systemctl start caddy.service
接続の確認はchromeのdeveloper toolsのNetworkを見ればよい。protocolがhttp/2+quic/39などとなる。
すぐにquic接続が有効にならないことがある。
参考サイトによると
(Caddyでは、httpsのみが有効なバーチャルホストに対してhttpでアクセスすると自動的にhttpsに転送されますが、TLS1.2により接続されてしまいます。httpsに転送されたのちに更新するなどして再接続するとQUICで接続されるようになります。)
らしい。