Joomla -- Load Balancing and Multiple Server Architecture

Discussion regarding Joomla! Performance issues.

Moderator: General Support Moderators

Forum rules
Forum Rules
Absolute Beginner's Guide to Joomla! <-- please read before posting, this means YOU.
Security and Performance FAQs
Forum Post Assistant - If you are serious about wanting help, you will use this tool to help you post.
mohamedking
Joomla! Fledgling
Joomla! Fledgling
Posts: 1
Joined: Thu Oct 27, 2011 12:01 am

Re: Joomla -- Load Balancing and Multiple Server Architectur

Post by mohamedking » Thu Oct 27, 2011 12:07 am

@eppen002,

Do you mind providing some details architecture/technologies used for your setup?

fgansovsky
Joomla! Fledgling
Joomla! Fledgling
Posts: 1
Joined: Tue Aug 03, 2010 2:32 am

Re: Joomla -- Load Balancing and Multiple Server Architectur

Post by fgansovsky » Sat Dec 03, 2011 12:41 am

eppen002 wrote:
Please keep in mind that these types of solutions are (in my eyes) only meant for huge sites, a normal Joomla website can easily handle thousands of visitors a day and of course it might be that our solution won't work for you.

If you are interested, you can always contact me. I have quite a busy job, please give me some time to respond! :)
It very interesting how you set up Load Balancing for Joomla.
Please explain here or send me email: [email protected]

Thanks,
Felix

rickginer
Joomla! Fledgling
Joomla! Fledgling
Posts: 3
Joined: Thu Oct 06, 2011 12:17 am

Re: Joomla -- Load Balancing and Multiple Server Architectur

Post by rickginer » Tue Jan 10, 2012 12:13 am

I wrote a database handler which allows load-balancing across a potentially infinite number of servers. You just need to drop one file in to the libraries area of Joomla and set a parameter in configuration.php.

You can read more about it here: http://www.giner.co.uk/index.php?/Blog/ ... a-CMS.html

This database handler is being used on some very big sites such as http://www.startupsmart.com.au and http://www.smartcompany.com.au

If you want any more information I am more than happy to help. Contact me at http://www.giner.com.au or http://www.valegro.com.au

PaulPreston
Joomla! Apprentice
Joomla! Apprentice
Posts: 45
Joined: Sun Jan 30, 2011 12:53 pm
Location: London, UK
Contact:

Re: Joomla -- Load Balancing and Multiple Server Architectur

Post by PaulPreston » Sun Jul 08, 2012 1:53 pm

Milchi wrote:
stconrad wrote: Thanks both for responding. Brian I look forward to what you find out.

I have been doing more research and found architectures similiar to what Dave described.  One change was that the Joomla docroot was on a shared drive, behind all the webservers. This essentialy sync's their codebase instantly, without having to do an rsync.

When we finalize our architecture and it is load tested, I will diagram it and post it here.  :)
We use the following Configuration

[load balancer] Webserver 1, Webserver 2, Webserver 3

Joomla, DocRoot NFS Share on a SAN Cluster

1 Databaseserver for all Operations

Working very well with Nice Page Times, But one big problem you can't work with the backend :( If the Load balancer kicks you on another server while you are working, you have to login again and all work is lost. We never get a solution to this problem. In Frontend, this problem never happens....
Hi Milchi,

This is something that you can handle on a load balancer level. Our configuration:

Internet --> LB layer (2 x Dell R210 II servers with red hat load balancing in active passive) --> Proxy Layer (bunch of Dell R210 II servers with apache load balancer) --> Web Layer (several Dell R710 Servers) --> DB Layer

On a Proxy layer we add cookies (proxyserver=<number> and webserver=<number>) so first request will be load balanced, but then all the requests will go to the same proxy server and web server. You will have to configure mod load balancer to check cookies as per following manual:
http://httpd.apache.org/docs/2.2/mod/mo ... ancer.html

Alternatively, you can force load balancer to use different configuration for back end URI, pointing it to one server only - we have tried that and it works well with rsync file replication between various web servers.

In terms of the database, we use bidirectional replication, well described in following article:
http://lug.wsu.edu/node/545

Last, but not least, by making all the traffic go through separate vips on a loadbalance layer infrastructure is fully fault tolerant without even a single point of failure from visitors perspective. From backend perspective, proxy layer is point to web server...

Performance related note: If you have a massive infrastructure with over 300 servers, shared storage is a "must have", but if you have less than 30 servers, rsync and solution above would suffice in 99% of cases. Assuming that you have more memory than size of the content of /var/www, I would also recommend putting in cron following command:
find /var/www/ -type f -print0 | xargs -0 cat > /dev/null

It will make sure that all the files are being kept in a system cache = accessible in a matter of nanoseconds.

HTH
--
Paul Preston - Senior IT Consultant
http://www.proxar.co.uk

eppen002
Joomla! Fledgling
Joomla! Fledgling
Posts: 2
Joined: Sun Oct 23, 2011 8:17 pm

Re: Joomla -- Load Balancing and Multiple Server Architectur

Post by eppen002 » Wed Aug 01, 2012 9:23 am

Hi there, since I got quite some replies last time on my small article about a loadbalanced Joomla website. We decided to write a more extended article about it: https://www.cloudvps.nl/blog/we-welcome ... s-platform

Image

This is the website of Exact Netherlands (http://www.exact.nl/) and it runs on a 100% redundant (loadbalanced) platform in multiple datacenters as well. We used VPS servers for all parts of the website (seperate webservers, mysql-servers, loadbalancers and caching servers). The only part we didn't split was a seperate file system.

In the initial setup we used a distributed file system, but it turned out it wasn't fast enough using multiple datacenters. We then jumped back to good old Unison. Currently we are running a project to fix that using SSD drives to see if we can get a distributed file system up to speed since a DFS has our preference.

For our content editors the website appears as a normal Joomla website, with normal access to the backend. Also we did not made any modification to Joomla, it's running a standard Joomla version. We are now running this setup for some time and it turns out to be a very stable and reliable platform :)

Kind regards,

Ebo Eppenga

otasadar
Joomla! Fledgling
Joomla! Fledgling
Posts: 1
Joined: Mon May 11, 2015 8:04 am

Re: Joomla -- Load Balancing and Multiple Server Architectur

Post by otasadar » Mon May 11, 2015 8:45 am

Hello everyone! This thread is a bit outdated, but sure people still struggling with Joomla on multiple servers. There is one setup I have been working with, hope it will help someone.

This is a medium website, that is deployed on two web servers and one load balancer is used to distribute the load. Web servers have both Joomla files and database. Files are copied with RSYNC utility. Database synchronized with database replication. Databases are configured as Master-Master.

Admins always access server that is configured as a source in RSYNC. This is done through a small script that restricts back-end access to all servers except source one.

Persistent sessions are configured to keep users on the same server they accessed earlier. This creates some issues with load balancing, as returning users already assigned to one of the nodes. But for our load it is acceptable.

This approach works fine for Joomla 1.5 and 2.5.

You can find more details here: http://technologyspacebridge.com/blog/h ... le-servers

Hope it helps!

kman22
Joomla! Fledgling
Joomla! Fledgling
Posts: 2
Joined: Sun Oct 04, 2015 11:38 am

Re: Joomla -- Load Balancing and Multiple Server Architectur

Post by kman22 » Sun Oct 04, 2015 12:15 pm

I need a clarification. a case of a two web servers, then the content editors will always access the source server and rsynch will ...synch ... the content to the other web servers correct?
Is it possible then to configure a non public facing CMS server. Editors make their changes there and then rsynch send the content to the public facing servers .


Locked

Return to “Performance - 1.0.x”