All Categories
  • Authentication
  • Branding
  • Changelogs
  • Collaboration
  • Compliance
  • Customization
  • Desktop Client
  • External Storage
  • Frequently Asked Questions
  • Installation
  • Nextcloud Talk
  • Operations
  • Partner Products
  • Roundcubemail
  • Scalability
  • Security
  • 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).