Hi there,
We’re using Cloudflare workers to act as a reverse proxy to a downstream Wordpress server.
Works great.
I raised a ticket with Cloudflare about this, but they have been unable to answer - so hoping somehwere here can.
Question: how do i cache these requests in Cloudflare?
Ideally, i’d like to set the cache expiry based on the Wordpress headers. But, if that’s not possible - i’m happy to ‘force’ an arbitraty TTL, as long as i can check for a successful response first.
My worker code is pretty simple, the pertinent part is this:
return fetch(fetchUrl)
The best documentation i’ve found is this:
The docs indicate this:
fetch(event.request, { cf: { cacheEverything: true } })
But this seems to always result in a CF-Cache-Status: MISS
:
We can force a cacheTtl:
fetch(event.request, { cf: { cacheTtl: 300 } })
But like i said this is risky because if there’s an error in Wordpress, it’ll be cached (i’m not on enterprise plan, so can’t cache by status code)
So, it feels like i need to:
- Fetch the response from Wordpress
- Check the status code
- If status code is non-200, just return it through
- If status code is 200, manually add to the cache (e.g
cache.put
)
Can someone provide suggestions, and ideally - some examples?
Thanks