LowEndBox - Cheap VPS, Hosting and Dedicated Server Deals

Setup a Highly Available Wordpress Site From Scratch, 2024 Edition! Part 1: Introduction, Considerations, and Architecture

Highly Available WordPressIn 2021, I created a 6-part series on creating a highly available WordPress site. The goals were:

  1. Even if a VPS fails, the site will continue to function.
  2. Any failure will be transparent to the end user. If I come along to example.com and one node is down, I won’t notice any difference.
  3. Data will not be stale between the nodes. Every user sees the same info.

Back then we used DRBD, MariaDB replication, and OCFS2 to create a two-node environment that was durable and resistant to single points of failure.

Now it’s 2024 and it’s time for an update.  The 2021 architecture still works fine, but we’re going to take a different approach this time around to leverage some different technologies.  We’re also going to leverage Ansible for automation.

Here’s our stack:

  • Nginx and php-fpm
  • GlusterFS for the filesystem (instead of DRBD/OCFS2)
  • MariaDB Galera for database high availability
  • Round-robin DNS again
  • Let’s Encrypt for https
  • Ansible to make deployment simpler

Here’s how it’ll look when we’re done:

Highly Available WordPress ArchitectureLast time around I used Linode but since they’re not around any more (I mean, they are, but they’ve rebranded), For this tutorial, I’ll be using VPSes in Hetzner’s Hillsboro, Oregon location.

Here’s the outline we’ll follow:

Part 1 – Introduction, Considerations, and Architecture (this article)
Part 2 – Ordering the VPSes
Part 3 – Ansible
Part 4 – Gluster
Part 5 – WordPress install
Part 6 – MariaDB Multi-Master
Part 7 – Round-Robin DNS, Let’s Encrypt, & Conclusion

We’re dropping one tutorial every day, so come back tomorrow to get started!


No Comments

    Leave a Reply

    Some notes on commenting on LowEndBox:

    • Do not use LowEndBox for support issues. Go to your hosting provider and issue a ticket there. Coming here saying "my VPS is down, what do I do?!" will only have your comments removed.
    • Akismet is used for spam detection. Some comments may be held temporarily for manual approval.
    • Use <pre>...</pre> to quote the output from your terminal/console, or consider using a pastebin service.

    Your email address will not be published. Required fields are marked *