Configurare Nextcloud con NGINX: requisiti, installazione e configurazione
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.
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.
- 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.
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.zipbashSe 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/nextcloudbashConfigurare 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:
- Entra nel database come utente root con il comando
sudo mysql -u root -p. - Crea il database Nextcloud con
create database nextcloud;. - Crea l’account utente Nextcloud con il comando
create user 'nextcloud'@'localhost' identified by <new_password>;. - Assegna all’account creato i permessi di database con
grant all privileges on nextcloud.* to 'nextcloud'@'localhost';. - Infine, aggiorna i permessi con
flush privileges;ed esci dalla console del database con il comandoexit.
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- 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/defaultbashSuccessivamente, 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/bashConfigurare 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'bashQuindi, 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.itbashInserisci 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;txtPoiché 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;txtRiavviare 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.servicebashA 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.
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.

