If you're fortunate enough to be looking after a web site that's so busy that a single server can't handle all of your traffic, what should you do?
One popular approach is to use a piece of specialised hardware - a load balancer - that sits in front of your network and distributed requests to a series of machines to service the requests. Devices such as the Cisco CSS 11506 Content Services Switch (CSS11506-2AC) , for example. But such devices cost money - this one pops up for around $20,000; other may be as little as a third of that price, but still serious money.
some sites / applications where such a device is the best way to go - but there are other ways too if your site is too busy for one server to do everything ... but not swamped by an order of magnitude. You could, for example, run a front end system to proxy all requests through to one of a series of back end server where the real application work is done. And that front end system needs to be nothing more complex that a regular system running Apache httpd, using mod_proxy and mod_proxy_balancer to distribute traffic onwards. It's not ALWAYS going to be the solution for you, but as your site grows beyond the capacity of a single machine, it will allow for expansion without a huge investment in a specialist device and the training on and support thereof.
It's been pointed out to me that using an instance of httpd to forward all traffic leaves a single point of failure. Well - so does a hardware balancer in the scenario I have described above. Heartbeat scripts, checking device, etc, can overcome this issue and it need not be a concern.
We cover forwarding from Apache httpd on our Linus Web Server
course and on our Apache / Tomcat deployment course
. The first course is the one you should choose if you're forwarding to more instances of httpd, and the second if you're using httpd to front one or more Tomcat Java Application Servers. (written 2009-01-15)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articlesA690 - Web Application Deployment - Clustering and load balancing 
Java web application for teaching - now with sessions and clustering / load balancing demonstrations - (2015-02-20) 
Distributed, Balanced and Clustered Load Sharing - the difference - (2012-10-13) 
Simplest ever proxy configuration? - (2011-06-28) 
Distributing the server load - yet ensuring that each user return to the same system (Apache httpd and Tomcat) - (2011-05-18) 
Clustering on Tomcat - (2009-10-30) 
Load balancing with sticky sessions (httpd / Tomcat) - (2009-10-29) 
Sharing the load between servers - httpd and Tomcat - (2009-02-28) 
Automated server heartbeat and health check - (2009-01-16) 
More HowTo diagrams - MySQL, Tomcat and Java - (2008-08-24) 
Sharing the load with Apache httpd and perhaps Tomcat - (2007-03-29) 
Clustering, load balancing, mod_rewrite and mod_proxy - (2006-11-21)G913 - Well House Consultants - Hardware and Devices 
Setting up your MacBook Air as a mobile broadband router - (2013-07-07) 
Want to learn iPad and iPhone programming? Come along and learn with me for free. - (2012-01-28) 
Away to train - but still around by video for Melksham meetings - (2011-09-25) 
Change of balance, of attitude, and of work method - (2010-11-30) 
MacBook Air - hardware and system review - (2010-11-17) 
Web page to telephone calls / links using an iPhone - (2010-03-08) 
Camera to record where a picture was taken - (2009-05-18) 
Effect on server when memory runs out and swapping starts - (2009-02-26) 
Huawei D100 Wireless Router - Mobile Internet - (2009-02-10) 
What a shock - (2008-10-08) 
Latercomer to the technology - (2007-07-29) 
Hostnames spring forward - (2006-03-02)
Some other Articles
Travelling to a course - station pickupsAdvise before my Apache / Tomcat coursetomcat-users.xml; what a difference a space madeLoad Balancing - Hardware or Software?A good time to travelRules for a KingSpeaking all the languagesSo sad to see you goMelksham, Wiltshire. Town Crier Competition, 2009