Scaling Across Multiple Machines
This document will cover the reference architecture for the Nextcloud Scale Out model for a single datacenter implementation. The document will focus on the three main elements of an Nextcloud deployment:
- Application layer
- Database Layer
- Storage Layer
At each layer the goal is to provide the ability to scale, and providing a high availability while maintaining the needed level of performance. We do recommend to use memcaching with Redis as well, see notes below.
Application Layer
For the application layer of this reference architecture we used Oracle Enterprise Linux as the front end servers to host the Nextcloud code. In this instance we made httpd
a permissive domain, allowing it to operate within the SELinux environment. In this example we also used the standard directory structure placing the Nextcloud code in the Apache root directory. The following components were installed on each application server:
- Apache
- PHP 8.0+
- PHP-GD
- PHP-XML
- PHP-MYSQL
- PHP-CURL
Also required is the PHP smbclient module or smbclient (see SMB/CIFS).
Subscriber exclusive content
A Nextcloud Enterprise Subscription provides unlimited access to our knowledge base articles and direct access to Nextcloud engineers.