Назад | Перейти на главную страницу

Как использовать исходную CDN с внешними CNAME?

У меня есть особая проблема, с которой я борюсь при настройке CDN. Чтобы описать нашу ситуацию:

Мы используем CMS на основе ASP.NET (DotNetNuke), настроенную с двумя разными веб-головками на экземплярах AWS EC2, которые находятся за AWS ELB. Мы обслуживаем около 50 клиентов с помощью этого экземпляра нашей CMS, у каждого из которых есть свои веб-сайты. Поскольку ELB не позволяет нам записывать A, мы настроили CNAME для ELB. В свою очередь, каждый клиент (который владеет и контролирует свои собственные записи DNS) имеет CNAME для CNAME, которую мы поместили перед ELB.

I.E .: У нас есть cms.example.com CNAME в ELB. Наши клиенты, в свою очередь, имеют CNAME с www.customer.com на cms.example.com.

До сих пор мы пробовали несколько разных CDN, но столкнулись с двумя серьезными проблемами:

1) Amazon Cloudfront. Это тот, который мы ближе всего подошли к работе, однако Cloudfront заменяет строку пользовательского агента, что вызывает сбой в пользовательских элементах управления ASP.NET (в частности, связанных с генерацией javascript-метода __doPostback ()).

2) Сервисы, которые хотят взять под контроль DNS. Это представляет для нас проблему в отношении CNAME. Нам удалось перенести наш собственный CNAME (cms.example.com) на их домен, и прямой переход через cms.example.com работает фантастически. Однако www.customer.com (CNAME для cms.example.com) этого не делает.

Origin-push на самом деле не вариант, так как многим нашим клиентам достаточно сложно понять, как управлять своими активами через CMS, не говоря уже о FTP и выясняя ссылки.

В конечном итоге возникает вопрос, есть ли какой-либо метод, который мы можем использовать для настройки CDN с извлечением источника без контроля над доменами клиента?

Я бы посмотрел на решение, в котором ваш хост предоставляет контент, который перезаписывается для //cms.example.com/$customer/f/q/f.n

У меня есть одно имя хоста cdn, которое таким образом извлекает контент для моих имен хостов. При настройке нового клиента или имени хоста требуется небольшая конфигурация, чтобы разрешить это, но ее можно использовать в сценариях.

Проблемы возникают, когда вы пытаетесь выставить счет или ограничить использование CD для каждого клиента отдельно.