The modern internet user expects websites to be consistently fast and available, and a single box architecture may not deliver the levels of scalability and redundancy necessary to deliver on those expectations. Over the next few weeks, we’re going to dive into the configuration of a scalable, highly available web cluster that can grow to meet your needs as your traffic grows. We’ll begin with a high level overview of the cluster components and overall cluster architecture.
Load Balancer Tier: The load balancer tier will function as the traffic entry point for the cluster and consist of to machines running HAProxy and Keepalived. HAProxy will distribute requests to back-end web servers while Keepalived will provide heartbeat between the load balancers and a floating VIP. Web Server/Caching Tier: The web server/caching tier will consist of two Apache web servers which serve and cache identical content. Our example webapp will be WordPress and we’ll be caching it with WP Super Cache. Storage Tier: The storage tier will consist of two machines running GlusterFS. GlusterFS will provide scalable, redundant storage which will be used by the web server/caching tier. Database Tier: The database tier will consist of two machines running MySQL with master/slave replication enabled. In part 1 of this series we’ll begin cluster configuration by configuring the load balancer tier. //J