Posted by arman on June 16, 2008 at 5:11pm
Greetings,
We're preparing to rollout a CDN for our Drupal implementation and would like to get notes of other people's experiences.
We have about 1/2 million images that we primarily want to push out to a network.
There is a CDN module, http://drupal.org/project/cdn, that we've been looking at, however the author states:
"... it doesn't scale yet (yes, that's pretty ironic since the exact goal is better scalability ..."
Thanks,
Arman.
Comments
CDN Pull, Cache headers
Hi,
We don't have the large amount of content but are expecting a very large audience and we have decided to go the route of using the CDN as a routing/caching server. From an application point of view this is relatively straight forward in that we just need to get the caching headers correct and the CDN will serve that artifact until we said not to and/or check for changes (Etags) as expected also.
On evaluation we have found that there weren't any existing modules we were happy with and have decided to build our own. We will also be using apache configuration to help minimise the development work.
How are you intending to use the CDN i.e. store the content on CDN, have it pull it from you when needed and cache (like us) combination of above, something else?
Cheers,
Pete
Interesting -- we're looking at using Apache too
Our primary use is to cache the content on the CDNs -- we have a large audience and a large amount of content (images + css and js).
Plus our user generated content (including images) gets promoted to the front page and main landing pages immediately.
Thus we really have to check if the resource (image) has been pushed to the CDN (or not) before we modify references to it in our html from local to the cdn.
Two apache modules that may provide relief in an as-is capacity or with some hacking are mod_proxy_html and mod_publisher from http://apache.webthing.com/mod_proxy_html/.
To complicate matters a bit the CDNs want us to partition our images into 10 accounts for example image_cdn_0, image_cdn_1, ..., image_cdn_9 -- the cited reason is that the lookup and serving will be faster as we reduce the number of files per account (???) -- this can be done by using the last digit in the size of the file or by using a more exotic scheme such as picking the last digit of the md5 signature of the image of the file -- yuck!
I'd be very interested in learning how you're planning on using apache to integrate Drupal with your CDN.
Thanks,
Arman.
I might be off the mark
I might be off the mark here, but what about using Amazon S3. You can setup multiple static buckets for your different assets and serve them through S3. As of today, there is no direct upload from drupal to S3, but there is media mover, which will move your assets to S3 through cron.
With a little work, you could figure out a direct upload for your users.
As far as a static file
As far as a static file server goes I personally am not sure how much this would help, I am sure it would be beneficial but how much? May be better off to set up a static file server with litehttpd or something. Plus I'm not sure if Amazon S3 would provide the same functionality as a CDN in regards to Geologically dispersed serving
Vision Media - Victoria BC Web Design
Tj Holowaychuk
Vision Media - Victoria BC Web Design
Victoria British Columbia Web Design School