High Volume Web Serving

High Volume Web Serving

I've been teaching myself high-volume website design. There's some really cool stuff you can do. Reading the articles about Digg, Slashdot and Reddit and how they designed their server farm inspired me.

Here's what I've decided is cool enough to use, most of which is covered in the recent Slashdot writeup:pound reverse load-balancing proxy:

This thing is cool. You can even set it up to send requests out of one URL directory to one server, and requests to another URL directory to an entirely different server. It's small, fast and easy to configure. I've set mine up to not only load-balance on the main servers, but farm off static images to another server group entirely. I'm even running it on one of the Apache servers on port 80, and running Apache on port 81 and having it forward the requests to port 81 for certain directories, and to another server for other things. It also does HTML validation as an added layer of security. Ubuntu server already had a package available for it.

lighttpd

Yeah, I don't really care to figure out how to get this to run all my PHP stuff, but I'm using it to serve all my static content and it's blazing fast. With it's compression module, it pre-caches compressed versions of css and javascript. I've also configured it to tell the client browser's how long to keep the images and scripts so I can reduce my bandwidth - sure you can do all that with Apache, but it's so... light... that you need so much less resources.

Apache + PHP + MySQL

Duh.

eaccelerator PHP caching and acceleration software:
I've been using eaccelerator for quite some time. This thing makes a huge difference, especially when you have a bit of RAM you can throw at it. It's really easy to compile and install - in under 5 minutes you can download it and have it up and running from source. It's a great free alternative to Zend's PHP acceleration platform.

So sure, if you read slashdot, etc. you've seen this before, but I just want to say I was so blown away by how easy each of these components is to install and get running.

Posted by Tony on Nov 10, 2007 | Servers