Я настроил Edgecast CDN для зеркалирования всего моего статического контента. Поскольку я использую корень своего домена (donaldjenkins.com
) для размещения моего основного сайта - с помощью Google Analytics, который устанавливает файлы cookie - я сохранил соответствующие статические файлы в отдельном без печенья домен (donaldjenkins.info
), который используется только для этой цели. Я его настроил (используя это руководство для общего руководства) со следующей структурой, основанной на сочетании происхождения клиента и источника CDN, чтобы максимально использовать выбранное короткое доменное имя и предоставить значимые URL-адреса:
http://donaldjenkins.info:80
установлен как происхождение клиента для контента, хранящегося в CDN в каталоге http://wac.62E0.edgecastcdn.net/8062E0/donaldjenkins.info
;
Затем я создал различные поддомены отдельного домена, с удобным названием cdn.dj
, так как CDN-происхождение Edge 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-адреса.
Файл зоны DNS для cdn.dj
(да, это настоящее доменное имя, зарегистрированное в Джибути) настроено правильно:
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.
DNS преобразуется в URL-адрес Edgecast:
$ 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>
несмотря на то, что существует соответствующий файл происхождения клиента:
$ curl http://donaldjenkins.info/js/combined.js
извлекает содержимое combined.js
файл. Тем не менее, с тех пор, как я установил CDN, прошло более чем достаточно времени для распространения DNS.
Очевидно, что в описанной выше настройке есть какая-то вопиющая ошибка, и я немного новичок в CDN, но любые предложения будут с благодарностью приняты.
Это не имеет ничего общего с DNS. Вы не должны использовать исходные серверы CDN. Весь ваш контент находится на сервере вашего клиента. С исходными серверами CDN вы вручную (через FTP) загружаете на них контент.
Итак, удалите исходные серверы CDN. Удалите запись cdn.dj A (при условии, что вы просто хотите использовать cdn.dj для cdn)
Затем следуйте этим инструкциям из http://wiki.mediatemple.net/images/EdgeCast_HTTP_Small_Object_Guide_3.03.pdf:
Чтобы настроить наши пограничные серверы на распознавание вашего CNAME
Тогда вот что происходит:
Это потому, что вы неправильно настроили свой DNS.
Кажется, у вас включен подстановочный знак DNS, так что something.donaldjenkins.info будет записью A для 205.186.157.162
.
Ваши поддомены css, js, images также указывают на этот IP, а не на CNAMES; Это заставляет меня думать, что вы их неправильно настроили.
Чтобы настроить images
поддомены у вас должно быть что-то вроде:
images.cdn 43200 IN CNAME wac.62E0.edgecastcdn.net.
Я очень надеюсь, что ты скажешь *.cdn.dj
как способ сократить donaldjenkins.info, как cdn.dj
это не настоящий домен, который вы можете использовать.