CDN CNAME不解决客户来源

我已经build立了一个Edgecast CDN来镜像我所有的静态内容。 因为我使用我的域( donaldjenkins.com )的根来托pipe我的主站点 – 使用设置Cookie的Google Analytics(分析) – 我donaldjenkins.info相应的静态文件存储在单独的无cookie的域( donaldjenkins.info )中,该域仅用于此目的。 我已经设置了它(使用本指南进行一般指导),结构如下,基于客户出处和CDN起源的组合,充分利用所选的短域名并提供有意义的URL:

  1. http://donaldjenkins.info:80被设置为CDN中目录http://wac.62E0.edgecastcdn.net/8062E0/donaldjenkins.info的内容的客户来源 ;

  2. 然后,我为每个相应的静态内容types设置了一个单独的域的各个子域,即方便命名的cdn.dj ,作为CDN源边缘CNAME:

    • js.cdn.dj指向原始目录http://wac.62E0.edgecastcdn.net/0062E0/donaldjenkins.info/js ;
    • css.cdn.dj指向原始目录http://wac.62E0.edgecastcdn.net/0062E0/donaldjenkins.info/css ;
    • images.cdn.dj指向原始目录http://wac.62E0.edgecastcdn.net/0062E0/donaldjenkins.info/images

等等。 这导致一些相当不错,简短,清晰的url。

cdn.dj的DNS区域文件(是的,它是一个在吉布提注册的真实域名)被正确设置:

 cdn.dj 43200 IN A 205.186.157.162 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. 

DNSparsing为Edgecasturl:

 $ 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 93.184.220.20 

但是,无论何时我试图抓取CNAME资产映射到的任何目录中的文件,我都会得到一个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> 

尽pipe存在相应的客户来源文件:

 $ curl http://donaldjenkins.info/js/combined.js 

获取combined.js文件的内容。 自从我设置CDN以来,DNS已经绰绰有余了。

在上述设置中显然有一些明显的错误,我对CDN有点新手 – 但任何build议都会受到感谢。

它与DNS没有任何关系。 您不应该使用CDN原始服务器。 您的所有内容都在您的客户来源服务器上。 使用CDN原始服务器,您可以手动(通过FTP)向其上传内容。

所以,删除CDN原始服务器。 删除cdn.dj Alogging(假设你只是想为cdn使用cdn.dj)

然后按照http://wiki.mediatemple.net/images/EdgeCast_HTTP_Small_Object_Guide_3.03.pdf中的说明操作&#xFF1A;

configuration我们的边缘服务器来识别您的CNAME

  1. 导航到Edge Cnames页面,该页面可以在MCC的HTTP Small Object选项卡上find。
  2. 在New Edge Cname选项中,input所需的CNAMElogging的名称。 CNAME应以小写字母指定,不应包含协议(即http://)。 [例如js.cdn.dj. -MAW]
  3. select指定的CNAME是否指向客户来源或CDN原始服务器。 [在你的情况下客户来源。 -MAW]
  4. 通过指向选项,selectCNAME将指向的源服务器上的根位置。 如果你想指定一个特定的文件夹,那么你应该input正斜杠(/),然后是所需文件夹的path。 [examample: http ://donaldjenkins.info/js for js.cdn.dj. -MAW]
  5. 点击添加。
  6. 确保指向同一个域的CNAMElogging已在您的DNS服务器上注册。 此CNAMElogging必须与分配给您的边缘CNAME的名称相匹配。 [你已经这样做了。 -MAW]

那么这是发生了什么事情:

  1. Web浏览器请求http://js.cdn.dj/combined.js
  2. CNAME将请求发送到wac.62E0.edgecastcdn.net。
  3. wac.62E0.edgecastcdn.net查看HTTP主机头并看到js.cdn.dj.
  4. wac.62E0.edgecastcdn.net通过它的configuration查找,并find一个用于客户源服务器的js.cdn.dj的掩码URL http://donaldjenkins.info/js
  5. wac.62E0.edgecastcdn.net的行为好像只是获得了URL http://wac.62E0.edgecastcdn.net/8062E0/donaldjenkins.info/js/combined.js的请求&#x3002;
  6. combined.js从caching中提供或从http://donaldjenkins.info:80/js/combined.js中检索,然后提供&#x3002;

这是因为你没有正确configuration你的DNS。

看起来你已经启用了DNS通配符,这样anything.donaldjenkins.info就会成为205.186.157.162的Alogging。

你的CSS,JS,图像子域名似乎也指向这个IP而不是CNAMES; 这导致我相信你错误地configuration了这些。

要configurationimages子域,你应该有这样的东西:

images.cdn 43200 IN CNAME wac.62E0.edgecastcdn.net.

我真的希望你说*.cdn.dj作为一种缩短donaldjenkins.info的方法,因为cdn.dj不是一个真正的域名,你可以使用。