I have a particular issue that I'm struggling with regarding setting up a CDN. To describe our situation:

We are running an ASP.NET based CMS(DotNetNuke), configured with two different web heads on AWS EC2 instances that sit behind an AWS ELB. We serve about 50 customers out of this instance of our CMS, each with their own websites. As the ELB does not allow us an A record, we have set up a CNAME to the ELB. In turn, each customer (who owns and controls their own DNS records) have CNAMEs to the CNAME we have put in front of the ELB.

I.E.: We have cms.example.com CNAME'd to the ELB. Our customers in turn have www.customer.com CNAME'd to cms.example.com.

We've tried a few different CDNs thus far, but have been met with two major problems:

1) Amazon Cloudfront. This is the one we got closest to working, however, Cloudfront replaces the user agent string, which causes a break in ASP.NET user controls(specifically relating to generating the __doPostback() javascript method).

2) Services that want to take control of DNS. These have presented a problem for us with regards to CNAMEs. We've been able to move over our own CNAME (cms.example.com) to their domain, and going directly through cms.example.com works fantastic. However, www.customer.com (a CNAME to cms.example.com) does not.

Origin-push is not really an option, as many of our customers have a hard enough time figuring out how to manage their assets through the CMS, let alone FTP and figuring out the links.

Ultimately, the question is, is there any method that we can use to configure an origin-pull CDN without having control over the customer's domains?


I would look at a solution where your host provides content that is rewrites for //cms.example.com/$customer/f/q/f.n

I have a single cdn hostname that pulls content for my hostname(s) in this fashion. When setting up a new customer or hostname a small configuration is needed to permit this, but its scriptable.

Problems arise when you attempt to bill for or limit the cdn usage per customer separately.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.