MariaDB 10.4 MasterSlave

WordPress latest, PHP-FPM 7.3

Redis 5.0

HAProxy latest

Adminer latest


The stack is suitable for highload wordpress sites which you can can scale as you want. It provides a one-click install solution for scalable WordPress with NGINX caching. The whole deployment takes about 10-15 minutes.

How the wordpress stack works

HAProxy on front-end takes requests from users and proxying them to WordPress (PHP-FPM with NGINX).  NGINX checks cache: if it has a cached page for the response it sends the page back if has not, NGINX proxying the request to load balancer Haproxy, which distributes the load between several nodes.

As a base is used MariaDB in master/slave configuration with Redis as object cache. 

Scalable WordPress with NGINX cache, HAproxy, MariaDB with MasterSlave

The Scalable WordPress with NGINX cache stack design

How to deploy the stack
  1. Click Deploy stack
  2. Sign in or create an account
  3. Choose a provider (how to add a cloud provider) and a region or an existing host (how to add own host to D2C) in Select existing hosts menu
  4. Fill in necessary fields (if they are, e.g. link to your repository)
  5. Click Create hosts and services
Minimal recommended configuration
  • 2 hosts with 2GB RAM
Configuring custom domain and getting free TLS certificates

You can add your domains with free Let’s Encrypt certificates using the following instruction:

  • Open a HAProxy service 
  • click “Edit settings”
  • find “Configure services” block
  • choose Own domains and specify domains and/or subdomains at domains field
  • click Update service
Working with Git

You can keep themes and plugins in your Git repositories. If you use this option, don’t forget to remove /themes and /plugins volumes in “Persistent data volumes” block.

Checking logs of containers (php, nginx, etc.)

You can check live logs at the page of a container. Please, follow the instructions from the Help Center. You may also find information about D2C logs in the documentation.

Changes in your config files

You can find and edit your configs using the following instruction:

  • open a blog service (Docker service)
  • click “Edit settings
  • find “Configs” block and wp-config.php
How to scale

To scale a database:

In blog (Docker) service:

  1. Find Application settings block and set DB_REPLICATION environment variable to “on
In db (MariaDB) service
  1. Click Scale
  2. Choose hosts for slaves
  3. Click Scale service

To scale a WordPress service, you need to scale blog service (Docker) and follow the next steps:

  1. Open a blog service
  2. Click Scale
  3. Choose hosts you want to use for new blog containers
  4. Click Scale service
There is nothing else needs to do. Load balancer works in Sticky session mode by default and balances PHP-FPM containers. HyperDB plugin is already configured and works well with MasterSlave configuration.
After deploying

You can: