What is a content delivery network (CDN)?
A content delivery network (CDN) is an infrastructure built of a distributed system of servers across many data centers. A CDN is designed to deliver web content, downloadable content, applications, streaming media and so forth with both high availability and high performance. Behind a CDN is an origin server, and a CDN can serve as a protective layer, shielding the origin from attacks or overloads. A CDN can also boost network performance, scalability and content availability.
CDNs are used to cache static or semi-static content as close as possible to the user. They can also keep established TCP or SSL sessions open between the user and the origin, which is particularly important for SSL connections. This becomes tricky because they may not cache as well as you would like because they are shared resources, subject to the pressure the CDN is under. When a CDN runs out of I/O capacity, it may pass more requests on to the origin, in some cases repeatedly because a CDN may be powered by thousands of servers.
For websites with large amounts of traffic, having a reverse proxy like Varnish in place to protect the origin can be a great investment.