Craft CMS の Cache-Control 周りを調整出来るプラグイン。

Upper
https://plugins.craftcms.com/u...

デフォルトでは設定ができないので、テンプレートタグで書くか、こういうプラグインを使う感じになる。

エントリとか更新があったときは Surrogate-Key/Cache-Tag あたりを更新するっぽい。

一覧ページと詳細でこんなかんじの Cache-tag を使ってた。

cache-tag: topPickup,el72,globalSite,el62,topBanner,el90,mainVisual,el65,globalProduct,el96,el63,el86,se3,el87,el88,el83,el84,el85,el82,el67,el649,se16,el674,se17,st5,el25,el655,el677,el68,el662,el19,el18,el671,el17,el665,el20
cache-tag: el87,se3,topPickup,el72,globalSite,el62,topBanner,el90,mainVisual,el65,globalProduct,el96,el63,el25,el655,se16,el677,se17,st5,el1119,st10,el1118,el1117,el1148,el1149

ただドキュメントにもかいてあるけど、 Cloudflare の場合は Enterprise じゃないと Cache-tag は使えない。

If you don't use Cloudflare Enterprise with native Cache-Tag support, make sure to enable useLocalTags in your config/upper.php file (default), otherwise disable it.

プラグインの設定

プラグインをインストールすると config/upper.php が生成される。defaultMaxAge の設定とか useLocalTags の設定をここで行う。

.env のファイルに CDN の設定を追記する。
Cloudflare だとこんなかんじで。

UPPER_DRIVER="cloudflare"
CLOUDFLARE_API_KEY="xxxxxx"
CLOUDFLARE_API_EMAIL="hoge@example.com"
CLOUDFLARE_ZONE_ID="yyyyyyyy"
CLOUDFLARE_DOMAIN="https://example.com"

こんなかんじで設定しておけば、指定した CDN がその設定を使ってくれる。

Cloudflare 側の初期設定

Cloudflare の caching の設定に初期値が設定されてて、そっちが優先されてるのに最初気づかず色々時間を使ってしまった。。。