Cloudflare Setup

If you use Cloudflare in front of smoxy, there are two things you need to configure to avoid conflicts: image caching and cache invalidation.


Image Optimization

When smoxy converts images to WebP or AVIF, it changes the Content-Type header but keeps the original file extension. Cloudflare caches based on file extension, not Content-Type — so an AVIF image may be cached under a .jpg extension, causing browsers to receive the wrong format.

Fix: Create a Cloudflare Cache Rule that bypasses cache for image files.

Cache Rule expression:

(ends_with(http.request.uri.path, ".png")) or
(ends_with(http.request.uri.path, ".jpeg")) or
(ends_with(http.request.uri.path, ".jpg")) or
(ends_with(http.request.uri.path, ".gif")) or
(ends_with(http.request.uri.path, ".webp")) or
(ends_with(http.request.uri.path, ".avif"))

Set the action to Bypass Cache for matching requests.

Additionally, if you have a Cloudflare Pro or Business plan, disable Cloudflare Polish (image optimization) to avoid double optimization.


Cache Invalidation

smoxy uses BAN and PURGE HTTP methods to invalidate cached content. Cloudflare can interfere with these requests in two ways:

  • BAN requests — Cloudflare's DDoS protection may block them if many are sent in a short time

  • PURGE requests — Cloudflare blocks these entirely, and no WAF rule can override this

Fix: Create a subdomain with Cloudflare's proxy disabled (DNS-only mode) and send your invalidation requests through it.

Setup

  1. In Cloudflare DNS, add a new record for a subdomain (e.g. smoxy.example.com)

  2. Set the proxy toggle to DNS only (grey cloud icon) — this means Cloudflare does not proxy requests to this subdomain

  3. Point the record to smoxy

Does the subdomain need to be configured in smoxy?

No. If your main domain (e.g. example.com) is already set up in smoxy and assigned to a site, all subdomains are automatically routed through the same site. The invalidation subdomain will use your existing site configuration.

Usage

Send your invalidation requests to the subdomain instead of the main domain:

This bypasses Cloudflare entirely, so BAN and PURGE requests reach smoxy without being blocked.

Last updated

Was this helpful?