I have set up an Edgecast CDN to mirror all my static content. Because I use the root of my domain (
donaldjenkins.com) to host my main site—using Google Analytics which sets cookies—I've stored the corresponding static files in a separate cookieless domain (
donaldjenkins.info) which is used only for this purpose. I've set it up (using this guide for general guidance), with the following structure, based on a combination of customer origin and CDN origin to make the most of the chosen short domain name and provide meaningful URLs:
http://donaldjenkins.info:80is set as the customer origin for the content stored in the CDN at directory
I've then set up various subdomains of a separate domain, the conveniently-named
cdn.dj, as CDN-origin Edge CNAMEs for each of the corresponding static content types:
js.cdn.djpoints to the origin directory
css.cdn.djpoints to the origin directory
images.cdn.djpoints to the origin directory
and so on. This results in some pretty nice, short, clear URLs.
The DNS zone file for
cdn.dj (yes, it's a real domain name registered in Djibouti) is set properly:
cdn.dj 43200 IN A 220.127.116.11 css.cdn.dj 43200 IN CNAME wac.62E0.edgecastcdn.net. images.cdn.dj 43200 IN CNAME wac.62E0.edgecastcdn.net. js.cdn.dj 43200 IN CNAME wac.62E0.edgecastcdn.net.
The DNS resolves to the Edgecast URL:
$ host js.cdn.dj js.cdn.dj is an alias for wac.62E0.edgecastcdn.net. wac.62E0.edgecastcdn.net is an alias for gs1.wac.edgecastcdn.net. gs1.wac.edgecastcdn.net has address 18.104.22.168
But whenever I try to fetch a file in any of the directories to which the CNAME assets map, I get a 404:
$ curl http://js.cdn.dj/combined.js <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>404 - Not Found</title> </head> <body> <h1>404 - Not Found</h1> </body> </html>
despite the fact that the corresponding customer origin file exists:
$ curl http://donaldjenkins.info/js/combined.js
fetches the content of the
combined.js file. Yet it's been more than enough time for the DNS to propagate since I set up the CDN.
There's obviously some glaring mistake in the above-described setup, and I'm a bit of a novice with CDNs—but any suggestions would be gratefully received.