The last few “Tech Support” columns have demonstrated how to optimize your PHP installation for maximum performance. From memcached, to decreased database load, from APC for opcode caching, to custom compilation tips, you have many options to boost the throughput of your Web server. A
t some point, though, you may find that your site outgrows even the best optimizations. When that happens, you’ll need to scale your application in other ways. This article focuses on scaling your Web servers by spreading the load to multiple machines.
Growing Wide
If you’re a “Web 2.0″ startup flush with venture capital cash, you probably can afford a proper load balancer from the likes of Cisco or F5 to help multiplex Web traffic among many servers. However, if you’re a Linux community site, purchasing expensive hardware is likely not a viable option.
An easy multiplexing solution is round-robin DNS, but as with most easy solutions, it’s one that offers little flexibility and has many limitations. Depending on your application behavior, you may be able to utilize Squid as a caching, reverse proxy. But what if your setup isn’t cache-friendly?
Enter Perlbal, a Perl-based, reverse proxy load balancer written by Danga (who also wrote memcached). Available for download from http://www.danga.com/dist/Perlbal/, Perlbal is released under the same license as Perl.
Perlbal is a single-threaded, event-based server that enables HTTP load balancing, Web serving, and a mix of the two. Perlbal maintains a pool of backend…
Please log in to view this content.
Not Yet a Member?
Register with LinuxMagazine.com and get free access to the entire archive, including: