1年半ほど前にサイトをHugo+GCSに移行したときに、別途動かしたいアプリケーションなどもあって、nginxを噛ませてhttps化したりしていたのですが、動かしていたアプリケーションが不要になってGCEを経由している必要がなくなったので、Cloudflareを噛ませてhttps化することにしました。

サーバ構成 (2022/01現在)

サーバ構成

前は Githubにcommit → Cloud Buildでファイル生成 → CGSに配置 とかやっていましたが、バージョンの齟齬などで動かなくなった時期を経て、

hugo # ファイル生成

# gcloud auth login は必要に応じて

# 生成したファイルをGCSにアップロード
gsutil -m rsync -d -r public/ gs://bucket-name/

当面これでいいでしょ、となってしまっています。
また自動でビルドするようにはしたい気持ちはあるのですが、そんな気持ちを抱えたまままた数年とか経過してそうなところはあります。よくないな。

Hugo Deploy | Hugo

Hugoにデプロイコマンドがあるのは認識したのでこっちでもいいかもしれない。
(アップロードまわりを担っているっぽいので、結局叩くコマンド数変わらない気もする)

GCS + Cloudflare

GCSに配置した静的ファイルをCloudflare経由で独自ドメイン&https化する方法はググれば参考になる記事が出てくるので省略するのですが、ネックになったのがこのサイトが www.rettuce.page でなく rettuce.page で動いているあたり。
基本的にはネイキッドドメインに CNAME を指定しないほうがよいようなのですが、

Cloudflareコラム | URLに「WWW」が付かないサイト作る場合の注意点

いけるよ、って言われたでので、まあいいかなって……。

CMANE設定

何も考えずにこのノリで設定すると、「CNAME のフラット化」(=CNAME Flattening) が効いて、だいたい想定通りの挙動はするようになりました。

参考サイト