September 13, 2011 - by peteryorke
The following is a continuation of our series on scaling WordPress and a repost of Peter Yorke's original blog at peteryorke.net. Peter is a Solution Architect at Joyent with a passion for performance and scalability -- he's the man who knows how to make websites go to "11."
To continue building on the foundation of a single WordPress server implementation.
In this article, I discuss how to bring in a second server and cluster them behind a Zeus Load Balancer.
Here is a typical 2 webnode with database, I recommend a Master/Slave MySQL config, but for simplicity, I have just one pictured.
Joyent can clone the first WordPress via a support ticket, you will need to set up replication via a rsync script:
rsync wp-content/* jill@2nd-wordpress-server:/home/wordpress/wp-content
Next we need to create a Zeus load balanced pool with our two servers
A few caveats:
When doing upgrades to WordPress or WP plugins, you will need to drain/disable webnodes in your Zeus configuration one at a time during your normal maintenance windows. So drain/disable, upgrade, then repeat.
If you are running Multisite, you will need to update similar to the above instructions.
In my 3rd and final article, I will attack issues related to scaling databases when performance gets sluggish.