We are developing a high traffic website, and to make it easy to manage the server requirements for Wordpress. we like to use Cpanel/WHM as the hosting management Software.
Also to manage the load and traffic, I was thinking to have multiple Droplets and try to maximize the performance through the Load Balancer Feature of Digital Ocean.

My questions:
I like to know what is the best method to do the above, Should we have 2-3 droplets with identical Cpanel on all of them to distribute the traffic or this method is wrong. Any suggestions are welcome.

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
2 answers

Hey,

If you simply put 3 instances of CPanel you should think how exactly they are going to be identical. Simply loadbalancing it, would not be an option, because you will make a change on 1 of the servers and after a refresh you will be forwared to a different server which does not have this change made.

Regards,
Ivan / YoghurtPower

I have always wanted to do load balancing on a cpanel server - for redundancy. If you look at the cPanel website feature requests, you will see that load balancing is one of the top most requested items and it has been so for many years.

The problem is cpanel does not natively support this feature - which basically means, there is no ‘easy’ or 'in-built’ way to achieve data mirroring.

What that means to you as server admin, is you somehow need to find a way to make two (or more) instances synchronize the data before you can even think about load balancing.

It’s not so bad if the website on the server is static - even a simple wordpress site that’s just a brochure is probably ok - but if it’s woocommerce or any other ecommerce or site that relies on live database transactions, then you’ll have to overcome the issue of real-time data replication.... in other words, if the load balancer switches over from server 1 -> server 2 during a checkout (or other ecommerce) transaction, then server 2 needs to be able to instantly see the same database information that server 1 was seeing.... and handle the switchover of data (and back again from server 2 -> server 1, when 1 comes back online again or when the load can be switched back.

Also - if you are using the mail functionality in the cPanel server, you also have to think about MX and other DNS records and server IPs etc and to to ensure traffic is being sent to the right place.

You can achieve this through setting up a third server used for the DB which is independent of server 1 & 2 (look up Galera Cluster for MySQL)… and then what happens if this server 3 for the DB goes down? Maybe you will need a fourth server as a backup to server 3! As you can see, it’s starting to get complex… which is why cPanel has not gone down this road, instead, prefering to suggest users choose a reliable data-centre provider who provides 100% uptime guarantee or some kind of hardware failover - there are providers out there that do that… but it means you hand over trust.

I have not tried this (yet), but from my research, here is what needs to be done if you want to do it yourself;

1) set up three (or four) server instances - 2 for cpanel data and 1 (or 2) for DB.
2) set up your load balancer and e.g. floating IP
3) instal cpanel as a cluster set up (look it up in the docs on cpanel) - and find a way to rsync them.
4) test

If you go ahead with this.... let us know how it went!

Submit an Answer