MariaDB 10.4 MasterSlave

2 x PHP-Apache 7.2

HAProxy Latest

Redis 4.0

Adminer latest


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

How it works

HAProxy on front-end takes requests from users and distributes the load between several nodes.

PHP-Apache comes in two containers with installed and enabled WP-CLI, redis-cache, HyperDB plugins and pagespeed module for Apache.

As a database is used MariaDB in MasterSlave configuration with Redis as object cache

How to deploy a 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
  • 1 host with 1GB RAM
Configuring custom domain and getting free TLS certificates

You can add your domains using the following instruction:

  • Open an HAProxy service 
  • click “Edit settings”
  • find “Configure services” block
  • click Generate new config, choose HTTP or HTTPS and click Generate
  • choose Own domains and specify domains and/or subdomains at domains field
  • click Update service
Changes in your config files

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

  • open a PHP-Apache service (name “blog” in this stack by default)
  • click “Edit settings
  • find “Configs” 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.

How to scale

Check a quick gif example on how to scale a database (MariaDB) and an app (Python in this case) or follow the next steps:

To scale a database:

  1. Open a MariaDB service (name “db” in the stack by default)
  2. Click Scale 
  3. Choose hosts for slaves
  4. Click Scale service

To scale a WordPress service, you need to scale PHP-FPM service (name “blog” by default in the stack) and NGINX-Cluster (name “cluster” by default) and follow the next steps:

  1. Open a PHP-FPM service
  2. Click Scale
  3. Choose hosts you want to use for new PHP-FPM containers
  4. Click Scale service
  5. Do the same with NGINX-Cluster using the same hosts (each PHP-FPM service should be with NGINX-cluster at the same host(s))
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: