August 26, 2011
I host my site at prgmr.com, but it is essentially a small VPS, probably underpowered for the traffic spikes the my blog gets on occasion. I've done a few things to try to improve that time (such as using wp-super-cache, and I've investigated using nginx as a front end proxy (or even a replacement) for my web-serving needs, but in the end, all of these solutions require that queries come to my machine.
The ultimate solution is to spread the load across several machines in geographically dispersed locales. The biggest problem with that is that is money; namely that I'm cheap and that solution definitely isn't.
I thought the situation was hopeless until I was reading this Reddit thread asking what people's favorite Content Delivery Systems (CDNs) were. Lucidify (who is a god among men. or women. Or whatever gender/species they are) mentioned Cloud Flare as a free CDN.
Free? It's like you can hear my ears perking up over the internet, isn't it?
So I checked it out. Sure enough, it's got three tiers, the bottom being free. And the features are great, even with the free plan. I figured, hey, the performance on my blog is bad enough right now that I can't possibly screw it up THAT much, right? So I signed up.
Because they're acting as a reverse proxy for your site, they need to essentially hijack your domain name resolution. They have an automated method of checking for existing DNS entries, to which you then add anything they didn't find (the only one I had to add was the special Google apps for domains CNAME).
While the scanning is going on, they play a little movie that explains what (and how) they do what they do. There was a little snippet that I got a kick out of:
In the past, if you wanted your website to be faster, safer, or smarter, you needed to add hardware, install software, or change your code. If you think about it, that's all so 1990s.
I use that phrase a lot, varying the year (or decade), depending on what I'm making fun of (Email is SO 1985. Just ask this guy).
Anyway, eventually you get to the point where you update your domain's DNS servers to the cloudflare servers, and that's pretty much it.
If you're running WordPress, there's also a wordpress plugin that fixes things that might be otherwise skewed by the reverse-proxy usage (such as IP addresses in comments).
Overall, I've been very impressed so far. I don't know a lot about the backend, but their system status page, they've got a dozen servers around the world. I don't know if everyone's pages are delivered by each of these sites or not, but even a subset would be likely to help my performance.
Initial gut response by me and everyone I've asked to check it out is that the site is running much, much faster. If so, I'm not the first success story. Develop Daily reported that not only is it running better, but their traffic has increased since installing it. Very cool.
If you've got a site that is underperforming, think about it and consider whether or not it's a good candidate for Cloud Flare, because I'm very happy with it so far.