Eseguire Nextcloud su un server NGINX permette un uso efficiente delle risorse e offre ampie possibilità di personalizzazione. Per l’installazione sono richiesti sia un sistema compatibile sia una configurazione adeguata. Inoltre, per integrare correttamente Nextcloud in un ambiente NGINX, è necessario apportare alcune modifiche specifiche.

Nextcloud e NGINX: una combinazione performante per il cloud

NGINX è un software per server web open source che può essere utilizzato anche come server reverse proxy, load balancer e cache HTTP. L’applicazione è sviluppata in gran parte dal programmatore russo Igor Sysoev e distribuito con licenza BSD (una variante di Unix).

NGINX è progettato per gestire un numero elevato di connessioni simultanee grazie a un’architettura asincrona basata su eventi. A differenza dei server web tradizionali, non assegna un processo o thread a ogni richiesta, ma utilizza un processo master e diversi processi worker. Il master gestisce la configurazione, mentre i worker rispondono alle richieste dei client.

Usare Nextcloud con NGINX offre diversi vantaggi, soprattutto in contesti server ad alte prestazioni:

  • Uso efficiente delle risorse: NGINX è in grado di gestire numerose connessioni senza utilizzare troppe risorse.
  • Alta scalabilità: consente una distribuzione flessibile del carico e l’aggiunta di server.
  • Ampia personalizzazione: la struttura modulare lo rende adattabile a vari scenari.
  • Prestazioni stabili anche in caso di carico eccessivo: anche in caso di elevato carico del server, NGINX rimane affidabile e garantisce una disponibilità costante.
N.B.

Nextcloud supporta ufficialmente solo Apache 2.x come server web. Pertanto, non fornisce alcun supporto ufficiale per NGINX. L’utilizzo di Nextcloud con NGINX è quindi consigliato principalmente a utenti con esperienza nella configurazione di server web.

Quali requisiti devono essere soddisfatti per utilizzare Nextcloud tramite NGINX?

Il prerequisito fondamentale è un server compatibile, come Ubuntu o Debian, con almeno 4 GB di RAM e 2 CPU. Per istanze più complesse con numerose app Nextcloud si consigliano più core CPU e più memoria RAM. Deve esserci anche spazio di archiviazione sufficiente per dati e backup.

Per l’installazione è inoltre necessario un database compatibile come MySQL o MariaDB e il linguaggio di scripting PHP (versione minima 8.1, consigliata la versione 8.3). Nel database sono memorizzati utenti, plugin, relativi dati e metadati dei file. PHP è essenziale per l’elaborazione e l’esecuzione delle funzioni di Nextcloud. Per poter installare Nextcloud è inoltre necessario un account con permessi di amministratore.

Managed Nextcloud
La nuova soluzione di cloud storage
  • Pieno controllo sui tuoi dati
  • Aggiornamenti automatici
  • Espandibile con app e strumenti di collaborazione

Nextcloud con NGINX come server web: installazione e configurazione

Prima di installare Nextcloud abbiamo già svolto alcune operazioni preliminari fondamentali. In questa guida partiamo dal presupposto che sia stato installato un server Ubuntu con il sistema operativo e tutte le dipendenze necessarie. Tra queste figurano NGINX come server web, MySQL come database e PHP nella versione 8.3 con tutte le estensioni necessarie.

Abbiamo inoltre installato Certbot per poter configurare facilmente un certificato SSL con Let’s Encrypt. È inoltre necessario disporre di un dominio per poter utilizzare Nextcloud tramite un URL corrispondente invece che tramite un indirizzo IP.

Consiglio

Nei nostri articoli correlati scopri come installare Nextcloud su Ubuntu 22.04 o Nextcloud su Kubernetes. Inoltre, puoi trovare una guida dettagliata per l’installazione e la configurazione di Nextcloud su Debian 12.

Scaricare e decomprimere Nextcloud

Per prima cosa, crea una cartella denominata “nextcloud”, nella directory utente sul tuo server, nella quale scaricherai i file di installazione di Nextcloud. Puoi farlo manualmente tramite il changelog di Nextcloud, ma è ancora più semplice utilizzando il seguente comando curl:

mkdir ~/nextcloud && cd ~/nextcloud
curl --output nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-30.0.5.zip
bash
N.B.

Se installi una versione diversa, assicurati di inserire l’URL corretto per il download del file ZIP.

Decomprimi il file, sposta la cartella in ./var/www (che funge da directory root del server web) e imposta i permessi dei file. A tal fine, utilizza i seguenti comandi:

unzip nextcloud.zip && sudo mv nextcloud /var/www/ && sudo chown -R www-data:www-data /var/www/nextcloud
bash

Configurare il database

Per configurare il database MySQL, esegui il comando sudo sudo mysql_secure_installation. Digita “y” per impostare la password di root (VALIDATE PASSWORD) e “2” per una password complessa (STRONG), che potrà essere configurata in seguito. Premi “y” per confermare la password e poi di nuovo per rimuovere gli utenti anonimi, vietare gli accessi remoti, rimuovere il database di prova e ricaricare le tabelle dei privilegi.

Quindi procedi come segue:

  1. Entra nel database come utente root con il comando sudo mysql -u root -p.
  2. Crea il database Nextcloud con create database nextcloud;.
  3. Crea l’account utente Nextcloud con il comando create user 'nextcloud'@'localhost' identified by <new_password>;.
  4. Assegna all’account creato i permessi di database con grant all privileges on nextcloud.* to 'nextcloud'@'localhost';.
  5. Infine, aggiorna i permessi con flush privileges; ed esci dalla console del database con il comando exit.

Dopo aver configurato correttamente il database, è necessario inserire i dati di accesso (DB_NAME, DB_USER, DB_PASSWORD) nel file di configurazione di Nextcloud. A tal fine, apri il file ./var/www/nextcloud/config/config.php e aggiungi le relative voci di configurazione:

'dbtype' => 'mysql',
'dbname' => 'nextcloud',
'dbuser' => 'nextcloud',
'dbpassword' => '<your_password>',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
txt
Server virtuali (VPS)
Virtualizzazione totale con accesso root completo
  • Traffico illimitato e fino a 1 Gbit/s di larghezza di banda
  • Storage SSD NVMe veloce
  • Plesk Web Host Edition incluso

Disattivare la configurazione predefinita di NGINX

Prima di integrare Nextcloud in NGINX, assicurati che nessun altro file di configurazione sovrascriva l’installazione di Nextcloud. Per impostazione predefinita potrebbe essere presente una configurazione di default in ./etc/nginx/sites-enabled/ che impedisce il corretto caricamento di Nextcloud. Questa deve essere rimossa con il seguente comando:

sudo rm /etc/nginx/sites-enabled/default
bash

Successivamente, assicurati che la nuova configurazione per Nextcloud sia attiva con il seguente comando:

sudo ln -s /etc/nginx/sites-available/dominioesempio.it /etc/nginx/sites-enabled/
bash

Configurare il server NGINX

Per configurare NGINX come server web, è necessario che sia già stato impostato un dominio e che questo sia collegato all’IP del server. Assicurati anche che la configurazione DNS sia corretta. A questo punto, crea il file di configurazione NGINX nella directory sites-available utilizzando il comando Linux sudosudo touch /etc/nginx/sites-available/dominioesempio.it(come URL abbiamo utilizzatodominioesempio.it`).

Apri il file di configurazione in un editor di testo come Vim con sudo vim /etc/nginx/sites-available/dominioesempio.it e incolla il blocco di codice della sezione “Nextcloud in a subdir of the NGINX webroots” della pagina web di Nextcloud sulla configurazione NGINX in ./etc/nginx/sites-available/dominioesempio.it.

Poiché il certificato HTTPS viene aggiunto con Certbot, è necessario rimuovere tutte le righe relative a SSL dal file di configurazione NGINX. Certbot esegue la configurazione automatica, quindi non è necessaria alcuna impostazione manuale dettagliata.

Configurare il certificato SSL con Certbot

Affinché Nextcloud funzioni tramite una connessione HTTPS sicura, è necessario configurare un certificato SSL, in questo caso di Let’s Encrypt. Innanzitutto, è necessario configurare il firewall in modo che le connessioni HTTPS e SSH siano consentite. A tal fine, utilizza il seguente comando sudo:

sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'
bash

Quindi, attiva il firewall con sudo ufw enable e verifica con sudo ufw status che le connessioni siano ora consentite. Successivamente, puoi creare il certificato SSL tramite Certbot:

sudo certbot --nginx -d dominioesempio.it
bash

Inserisci il tuo indirizzo e-mail per ricevere notifiche sul rinnovo dei certificati, accetta i termini e le condizioni e seleziona l’opzione 2 per reindirizzare automaticamente tutte le richieste HTTP a HTTPS. I file del certificato si trovano nella directory /etc/letsencrypt/live/dominioesempio.it/. Il file fullchain.pem contiene il certificato SSL, mentre il file privkey.pem contiene la chiave privata. Questi devono essere inseriti nel file di configurazione NGINX:

ssl_certificate /etc/letsencrypt/live/dominioesempio.it/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/dominioesempio.it/privkey.pem;
txt

Poiché Certbot ha modificato il file di configurazione, è necessario aggiungere nuovamente l’attributo ssl tra 443 e http2. Il blocco corrispondente dovrebbe quindi apparire come segue:

server { 
    listen 443 ssl http2; 
    listen [::]:443 ssl http2; 
    server_name dominioesempio.it;
txt

Riavviare i servizi e avviare Nextcloud

Per applicare le modifiche, è necessario ricaricare i servizi PHP-FPM e NGINX:

sudo systemctl reload php8.3-fpm.service
sudo systemctl reload nginx.service
bash

A questo punto apri il browser e digita il tuo dominio (nel nostro caso, dominioesempio.it). Se tutto è stato configurato correttamente, vedrai la pagina iniziale di Nextcloud.

N.B.

Se Nextcloud non funziona, è possibile che il tuo dominio non sia ancora stato inserito nel file config.php come dominio sicuro per Nextcloud. Esegui questo passaggio per risolvere il problema.

Hai trovato questo articolo utile?
Vai al menu principale