このブログには、記事を探すための検索があります。「検索機能」と聞くと、入力するたびに裏側でサーバとデータベースが動く、いわゆる動的なサイトを思い浮かべる方が多いかもしれません。ところがこのサイトは、公開されたあとは「動かないただのファイル」の集まりで、検索もブラウザの中だけで完結します。だから配信先を特定のサービスに縛られず、いわゆる CDN であればどれでも同じように配れます。
このサイ...
このシリーズは配信を軽くする話を続けてきました。前々回は ETag で再検証を安く(CDN と ETag を入れたのにサーバ負荷が上がった ― 動的生成と CDN はなぜ相性が悪いのか)、前回は キャッシュバスティングで「変えた分だけ」失効(更新したのに古い CSS が表示される ― キャッシュバスティングを content hash で正しくやる)。最後は 圧縮です。ただ正直に言うと、圧縮...
前回(CDN と ETag を入れたのにサーバ負荷が上がった ― 動的生成と CDN はなぜ相性が悪いのか)は、動的生成の前に CDN を置いて ETag を返してもかえって負荷が上がること、そして静的化して nginx の更新時刻ベースの ETag を安定させると配信元が楽になることを見ました。今回はその続きで、アセット(CSS・JS・画像・フォント)側の話です。よくある事故から始めます。...
動的に HTML を生成するサイトの前に CDN を置き、オリジン(配信元サーバ)が ETag を返すようにした。「変わっていなければ 304 Not Modified で済むから、オリジンは楽になるはず」 ―― そう期待したのに、負荷は下がらない。場合によってはむしろ上がる。動的生成サイトでよくある話です。原因は 2 つの事実に集約されます。動的生成では ETag は「作ってからしか決まら...