トップ «前日 最新 翌日» 編集
RSS feed

ただのにっき


2020-03-11(水) [長年日記]

Cloudflareで(ようやく)https化(2) - tDiary.Net(1)

先日のtdtds.jpのCDN化がなんのトラブルもなくうまくいったので、次はtDiary.Net。現在、第一から第三あたりまではそれなりに動いてるっぽいんだけど*1、これらを勝手にCloudflareの下に置きます。たぶん誰も文句言わないだろう(←)。

前回同様、DNSは自動ではまともに読み込んでくれなかったので、今回はCloudflareが提供するAPIを使って全ホストのCNAMEを登録した。cURLを叩くシェルスクリプトをでっちあげただけなので詳細は省く。こんな感じ:

entry() {
  name=$1
  host=$2
  curl -X POST "https://api.cloudflare.com/client/v4/zones/${zone_id}/dns_records" \
    -H "Authorization: Bearer ${access_key}" \
    -H "Content-Type:application/json" \
    --data "{\"type\":\"CNAME\",\"name\":\"${name}\",\"content\":\"${host}.tdiary.net\",\"proxied\",true}"
}

entry hoge tdiary1
entry fuga tdiary1
entry piyo tdiary1
...

簡単で良いですなぁ。アクセスキーに付与する権限にどれを使えばいいのかだけわかりにくかったけど。

で、日記の表示もうまくいってるようなので、試しにひとつ更新してみたら、こんな感じでGoogle Photosの画像が表示されなくなってしまった:

[スクリーンショット]画像が読み込まれていないtDiary

スクショだけではわからないが、404ではなく403、しかも更新直後は見えているのに、5分くらいすると見えなくなる。あまりにタイミングが一致しているので、どう考えても自分がなにかやらかしたに違いない。だが、あれこれ調べてみてもさっぱり見当がつかない。Cloudflareを通すタイミングでGoogleにアクセスがいって、そこでなにか起きているのだろうか……?

で、その後はてなブログでも同じ現象が起きてることを知り、やらかしたのはGoogleの方らしいと判明する。おれの時間を返せ!*2

ともあれ、これで完了かと思いきやそうではなく、道半ばである。実はいま、一部の日記はHeroku上で動作していて、その前に自作のtDiary専用リバースプロキシ&キャッシュサーバが置いてある。こんな感じ:

[図]tDiary.Net (Heroku) -Purge→ Reverse Proxy & Cache (独自) → Cloudflare

日記の更新などを契機に自作のプラグインがそのキャッシュサーバへpuegeの司令を送る感じでキャッシュコントロールをしてるんだけど、これを今後はCloudflareにまかせて*3、APIでpurgeをするようなプラグインに置き換えたい:

[図]tDiary.Net (Heroku) -Purge→ Cloudflare

どっかで時間を確保しなくては……。

*1 管理者のつながりもゆるいのであんまり把握してない、すみません。

*2 3月13日現在、問題は収束して、これまでどおり使えるようになっている。が、Googleからのアナウンスはいまだに見つけられていない。サービスを2日もダウンさせておいてそれはないだろ、Googleよ。

*3 現在はデフォルト運用なので画像や.js、.cssだけがキャッシュされてるはず。


トップ «前日 最新 翌日» 編集
RSS feed