Documentation

Short version: CNAME to the edge, set an origin, keep your Cache-Control honest.

1 — Point DNS at the edge

Create a CNAME from your delivery hostname to edge.dnox.eu for GeoDNS, or straight to a node if you want a fixed location.

cdn.example.com.   300   IN   CNAME   edge.dnox.eu.

Apex domains cannot be CNAMEd. Use an A record to the node address and accept that you lose failover, or put a subdomain in front. We do not offer ALIAS records because we are not your DNS provider.

2 — Register the origin

$ curl -X POST https://api.dnox.eu/v1/zones \
    -H "Authorization: Bearer $DNOX_TOKEN" \
    -d '{"host":"cdn.example.com","origin":"https://origin.example.com"}'
{"id":"zn_8f21c","host":"cdn.example.com","state":"provisioning"}

Provisioning includes certificate issuance and takes 30–90 s. Until it finishes the zone answers 503 rather than serving an unverified certificate.

3 — Caching

We respect the origin's Cache-Control and do not rewrite it. Absent a directive, defaults apply:

ResponseDefault TTLNotes
200, 203, 2064 hoursfull and range responses cached separately
301, 30824 hours
404, 41030 secondsnegative caching, keeps origin alive during scans
5xxnot cachedstale object is served instead if one exists

stale-while-revalidate and stale-if-error are honoured. If you send neither, a 5xx from origin with an expired object in cache still gets the stale object for up to 60 s — we would rather serve something slightly old than hand your users an error page.

4 — Headers we add

HeaderExampleMeaning
x-cacheHIT / MISS / STALEoutcome at the edge
x-served-bynl3node that answered
age41207seconds since the object was fetched

We do not add a server header and we strip the origin's. Several customers asked for this and nobody argued the other way.

5 — Limits

ThingLimit
Object size5 GB
Origin response timeout30 s to first byte
Purge API60 requests/min per token
Zones per accountno limit
Concurrent origin pulls per zone16, then collapsed into one