Clustering in eZ Publish Platform refers to setting up your install so you have several web servers running eZ Publish Platform.
Intro: Server setup overview
Diagram illustrates how clustering of eZ Publish Platform is typically setup, the parts illustrates the different roles needed for a successful cluster setup. Number of web server, memcached servers, Solr server, Varnish servers, Database Severs, NFS servers and if some servers takes care about several roles (typically running memcached across the web server) is up to you and your performance needs.
The minimal requirements are the following (with what is currently supported in parentheses):
- Shared HTTP cache (using Varnish)
- Shared Persistence cache and Sessions (using Memcached)
- Shared Database (using MySQL/MariaDB)
- Shared Filesystem (using NFS)
For further details on requirements, see Requirements doc.
While this is not a complete list, further recommendations includes:
- Using a CDN for improved performance and faster ping time worldwide
- Using Solr for better search and better search performance AS OF 5.3 OPTIONALLY USING SOLR (4.X) CLOUD
- Using Active/Passive Database for failover MYSQL/MARIADB CLUSTERING UNDER CONSIDERATION FOR 6.X
- In General: Make sure to use later versions of PHP and MySQL/MariaDB within what is supported for your eZ Publish Platform version to get more performance out of each server.
Steps to setup Cluster
To setup Cluster you'll need to:
- Setup DFS Cluster which moves binary files and some legacy cache files to NFS
- Configure Persistence Cache to use Memcached
- Setup Varnish, disable Symfony HTTP Cache and setup cache invalidation to purge Varnish cache
- Configure sessions to use cluster safe Sessions handling