Make your website the fastest it possibly can be.
If you want your WordPress website to be fast, this is the service for you. We will build a new WordPress environment for you on Digital Ocean (at a location of your choice and price per month of your choice – other VPS providers may be possible too – ask s) using the LATEST and GREATEST tools, speed boosts, caching services, compilation engines and more to ensure your site loads in the fastest speeds possible for a single server configuration.
We offer single-server or multi-server configurations with this service. This makes you the fastest possible stack you can get for your money.
We have hand-picked the best components for your server to make it as high performance as possible.
Each server will have the following high-performance items installed and configured:
- Varnish – front-end accelerator
- Nginx – high performance web server
- PHP 7 – the latest high performance PHP
- MariaDB – 100% compatible with MySQL but twice as fast
- Redis – ultra fast object cache (can be used for other caching too)
- Fail2ban – you will be automatically protected from bot attacks at the firewall level – this boosts performance because it reduces server load
- Real CRON job – don’t rely on customers visiting your site in order to run batch jobs, we install real cron
- Lifetime SSL – we use letsencrypt to get you a free lifetime SSL certificate
Multi-server Configuration Options
If you are importing large quantities of data to your server there is an insurmountable fact you need to know:
Batch-processing and real-time processing do not mix well
If you are importing products using your front-end server, then you unavoidably run the risk of slowing things down for your website visitors.
The solution to this is to move to a multi-server configuration.
What normally happens with WordPress is this:
- User enters your URL in browser
- URL resolved to IP adress by your DNS provider
- Page requested from that IP address
- Page request processed by Nginx or Apache
- Request passed to PHP 7
- PHP 7 talks to MySQL or MariaDB to fetch any data required
- PHP 7 returns page to Nginx or Apache which then sends data to the client
What we do with our multi-server set up is we replicate the data at the back-end over multiple MySQL databases using MariaDB Galera Cluster Replication.
Then at point 4 above, we insert a load-balancer element with Nginx. This load balancer allows us to send traffic to 2 or 3 back-end servers (PHP+MySQL).
Then we choose one of the servers – say server 1 – and only that server has WP CRON enabled. The other servers don’t have WP CRON enabled. That means, Server 1 becomes the batch processing server which runs all the WordPress CRON stuff (big data imports, image manipulation etc).
We also synchronise files using rsync. That means, if you install a plugin on Server 1 – the plugin files will automatically be copied across to Server 2 & Server 3. Then when you activate the plugin, that option will be changed in the database and will be replicated too over to the other servers.
It’s possible to switch this replication off – e.g. if you wish to set up the plugin and configure it fully before replicating all the changes over to the other servers.
With Server 1 handling all your batch processing, we modify the load balancer to send web traffic to Server 2 and Server 3 and only /wp-admin/ accesses Server 1.
If you have any pre-sales questions, you can find us on Hullo Chat in the bottom right of this page.