お久しぶりです。新年が始まってから卒業設計や新しい仕事のインターンシップを探すのに忙しく、いくつかの試行錯誤をブログに記録する時間がなかったのですが、最近、卒業設計の合間にブログを最適化し、ついでに記事を書いてみました。
過去のデプロイでは、ブログは常に複数のノードでデプロイされ、dnspod の地域別解析を使用してトラフィックを調整し、ブログのアクセス速度をできるだけ高速化していました。複数のノード間でのブログファイルの同期は最初は定期的なタスクで GitHub から更新していましたが、後に syncthing を使用して同期するように変更しました。この方法は少し愚かに見えるかもしれませんが、この 2 年間、私のブログのスムーズなアクセスを継続的に保証してきました。
最近、sukka さんのブログを見ていると、Cloudflare Workers を使用して静的ウェブサイトをデプロイするために kv ストレージを組み合わせることができることを知りました。そこで、自己ホストの画像サービス(画像を保存している HTTP サービス)を Cloudflare にデプロイし、速度と遅延のテストも非常に良好であったため、ブログのすべてを Cloudflare に完全に移行することを考えました。
これにより、私のブログは積極的な試行錯誤をしなくても、非常に高い信頼性と比較的良好な応答速度を保証できます。
404 ページの問題#
worker-site/index.js
ファイルには、URL からファイルを取得できない場合に/404.html
を返すロジックがあります。しかし、デプロイしてみると問題があることに気付きました。この 404 ページは、ブラウザにレンダリングされずにソースコードが表示されてしまいます。
F12 キーを押してネットワークのレスポンスを確認すると、返されたデータには指定されたレスポンスデータ形式のヘッダーが欠落していることがわかりました。
この問題を修正するには、レスポンスを返す際に適切なヘッダーを追加するだけで修正できます。コードの修正は、私が提案した PRを参考にしてください。