Usare uno Storage Server per il tuo sito: immagini, download, archivi
Lo spazio su un server web è caro, quello su uno Storage Server no. Questo articolo mostra cosa si può spostare, quale protocollo funziona dal server web e come i file arrivano in sicurezza ai visitatori.
Su un server web lo spazio su disco è il bene più costoso. Sta su SSD NVMe veloci, costruite per database e PHP, e con ogni gigabyte diventa sensibilmente più caro. Nello stesso tempo lì ci sono cose che di quella velocità non avranno mai bisogno: foto originali, file video, archivi di download, vecchi backup.
Uno Storage Server costa una frazione di quel prezzo e si prende esattamente questo carico. Questo articolo mostra cosa conviene spostare, quale protocollo funziona dal server web, come i file arrivano in sicurezza ai visitatori e dove sono i limiti.
Cosa conviene spostare, e cosa no
| Va sullo storage | Resta sul server web |
|---|---|
| Originali di immagini e video | Anteprime e versioni ritagliate |
| Archivi di download, file ISO, raccolte di PDF | CSS, JavaScript, font |
| Dati grezzi, esportazioni, archivi di log | Il database |
| Backup del sito | Tutto ciò che serve a ogni visita di pagina |
La linea di separazione è semplice: ciò che si legge raramente e si trasferisce una volta in blocco va sullo storage. Ciò che viene caricato a ogni visita di pagina resta dove è veloce.
Che cos'è uno Storage Server, e che cosa non è
Uno Storage Server è spazio di archiviazione in rete con account utente. Ti connetti con le credenziali e leggi o scrivi file. Non è uno storage a oggetti con indirizzi pubblici e non è una CDN.
In pratica significa: nel tuo sito non puoi collegare un'immagine direttamente allo storage, perché ogni accesso è autenticato. Il tuo server web preleva il file e lo inoltra, oppure generi tu stesso link di download a tempo limitato. Come si fa in modo pulito lo trovi più avanti.
Sembra una limitazione, ma ha un vantaggio: nessuno può prendersi i tuoi file indovinando indirizzi o passando un link a qualcun altro. L'accesso passa sempre dalla tua applicazione, e quindi dalle tue regole.
Lo schema che funziona nella pratica
Tre passaggi, non di più:
- Gli originali stanno sullo storage. Vengono caricati una volta e dopo si toccano raramente.
- Le versioni derivate nascono una volta e stanno sul server web. Quindi anteprime, varianti ritagliate, versioni compresse. Sono piccole, e servono a ogni visita di pagina.
- I download passano dalla tua applicazione. Un piccolo script verifica il permesso, preleva il file dallo storage e lo restituisce.
Chi ribalta lo schema e preleva le anteprime dallo storage a ogni visita si costruisce un sito lento. La latenza di rete per ogni file si somma, e una galleria con quaranta immagini aspetta quaranta volte.
Quale protocollo per quale caso
| Protocollo | Porta | Buono per | Richiede |
|---|---|---|---|
| SMB / CIFS | 445 | Montare come directory | permessi di root sul server |
| SSHFS | 23 | Montare come directory, cifrato | permessi di root sul server |
| SFTP | 23 | Accesso da PHP, script, trasferimenti | porta 23 in uscita |
| WebDAV via HTTPS | 443 | Hosting condiviso, ambienti limitati | solo HTTPS |
| rsync | 23 | Sincronizzazione di directory grandi | porta 23 in uscita |
| BorgBackup | 23 | Backup con deduplicazione | porta 23 in uscita |
La decisione più importante non dipende dai gusti, ma dai tuoi permessi: su un server proprio monti lo storage come directory, e ogni applicazione può usarlo senza saperne niente. Come si fa lo spiega Montare lo Storage Server come unità di rete.
Su hosting condiviso non hai permessi di root, quindi il montaggio non è possibile. Lì la strada passa da WebDAV o SFTP dall'applicazione, e WebDAV è di solito la resistenza minore, perché la porta 443 non è praticamente mai bloccata.
Configurare l'accesso da PHP
Per SFTP basta una libreria di PHP puro, non serve nessuna estensione sul server:
composer require phpseclib/phpseclib:~3.0
use phpseclib3\Net\SFTP;
$sftp = new SFTP('u123456.storage.kernelhost.net', 23);
if (!$sftp->login('u123456-sub1', $passwort)) {
throw new RuntimeException('Autenticazione non riuscita');
}
// Caricare il file
$sftp->put('/bilder/2026/original.jpg', '/tmp/upload.jpg', SFTP::SOURCE_LOCAL_FILE);
// Leggere il file
$inhalt = $sftp->get('/bilder/2026/original.jpg');
Per WebDAV basta perfino l'estensione curl già integrata:
$ch = curl_init('https://u123456.storage.kernelhost.net/bilder/2026/original.jpg');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERPWD => 'u123456-sub1:' . $passwort,
CURLOPT_TIMEOUT => 30,
]);
$inhalt = curl_exec($ch);
curl_close($ch);
I due esempi usano un sotto-account, non l'account principale. Il perché lo spiega la sezione seguente.
Un sotto-account dedicato per ogni scopo
Ogni Storage Server consente fino a 100 sotto-account, e questo in ogni tariffa. Ognuno riceve:
- una directory iniziale propria, dalla quale non può uscire,
- una password propria,
- permessi di protocollo propri, quindi per esempio solo SFTP e niente Samba.
Per un sito significa: un sotto-account per il server web, che può usare solo SFTP e vede solo /web, e un secondo per il backup, che vede solo /backup. Se un giorno il server web viene compromesso, chi attacca non arriva ai backup, perché quell'account non li conosce affatto.
Un limite esiste: un sotto-account non riceve una quota di spazio propria. Resta nella sua directory, ma da lì può riempire tutto lo storage della tariffa. Chi vuole limitare davvero i singoli utenti ha bisogno davanti di un'applicazione che se ne occupi. Collegare Nextcloud allo Storage Server mostra esattamente questo schema.
Consegnare i download in sicurezza
L'errore più frequente è lasciare che le credenziali arrivino al browser, per esempio con un link che contiene nome utente e password. La via corretta è che il tuo server apra la connessione e inoltri il file:
<?php
// Verificare il permesso prima che accada qualsiasi altra cosa
if (!nutzer_darf_datei($_GET['id'])) {
http_response_code(403);
exit;
}
$sftp = neue_verbindung();
$datei = $sftp->get(pfad_zu($_GET['id']));
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="dokument.pdf"');
header('Content-Length: ' . strlen($datei));
echo $datei;
Con file molto grandi conviene leggere a blocchi invece di caricare tutto in memoria, altrimenti salta il limite di memoria di PHP. Per farlo imposta ob_end_flush() e restituisci il file pezzo per pezzo.
Chi si aspetta molti download in parallelo deve tenere presente anche che ogni download in corso occupa un processo PHP. Oltre un certo ordine di grandezza, una cosa del genere va dietro un server proprio e non dietro hosting condiviso.
Fare il backup del sito sullo storage
È il modo più semplice per iniziare, e rende subito. Con rsync trasferisci solo le modifiche:
rsync -az --delete -e "ssh -p 23" \
/var/www/example.com/ \
u123456-sub2@u123456.storage.kernelhost.net:/backup/web/
Per i backup con deduplicazione e cifratura BorgBackup è la scelta migliore, sullo storage è disponibile in modo nativo. In più ci sono gli snapshot dello storage stesso come secondo livello: a seconda della tariffa 10, 20, 30 o 40 snapshot manuali, più altrettanti automatici con ritmo giornaliero, settimanale e mensile.
La differenza rispetto al backup sullo stesso server è quella decisiva: un disco cancellato o cifrato porta con sé un backup locale, un backup su storage separato no.
Prima di iniziare: due interruttori
Nell'area clienti, sulla pagina dello Storage Server, trovi il pulsante "Impostazioni di accesso". Due cose devono essere giuste:
- La Raggiungibilità esterna deve essere attiva, altrimenti il tuo server web non raggiunge lo storage attraverso internet.
- Il protocollo desiderato deve essere abilitato, quindi Samba per SMB, SSH per SFTP e rsync, WebDAV per la via HTTPS.
Sui server appena ordinati tutto questo è attivo. Chi per motivi di sicurezza disattiva quello che non gli serve dovrebbe tenerlo a mente, perché è proprio questo, più tardi, la causa più frequente di "non funziona più".
Quale tariffa è quella giusta
| Tariffa | Spazio | Sotto-account | Snapshot | Prezzo |
|---|---|---|---|---|
| Storage-1 | 1 TB | 100 | 10 più 10 automatici | 9,99 EUR |
| Storage-2 | 5 TB | 100 | 20 più 20 automatici | 29,99 EUR |
| Storage-3 | 10 TB | 100 | 30 più 30 automatici | 39,99 EUR |
| Storage-4 | 20 TB | 100 | 40 più 40 automatici | 69,99 EUR |
Tutti gli Storage Server si trovano in Germania, parlano FTP, FTPS, SFTP, SCP, Samba, WebDAV e WebDAVs, portano con sé rsync e BorgBackup in modo nativo e hanno IPv4 e IPv6. Non c'è nessun costo di attivazione, la fatturazione è su base PrePaid senza vincoli di durata. Puoi quindi iniziare con 1 TB e ingrandire più tardi, senza traslocare.
Un esempio di calcolo: 1 TB di spazio aggiuntivo su un server web costa, a seconda del provider, un multiplo di 9,99 euro al mese, e sta poi sulla stessa macchina del sito. Lo storage accanto non è solo più economico, è anche separato.
Domande frequenti
Posso inserire immagini nel mio sito direttamente dallo Storage Server?
Quale protocollo conviene usare dal server web?
Uno Storage Server sostituisce una CDN?
Quanti sotto-account posso creare?
Posso assegnare a un sotto-account uno spazio dedicato?
Quanto è veloce l'accesso?
Le credenziali sono visibili nel browser?
Posso usarlo anche per il backup del mio sito?
Mi serve per questo un server proprio?
Quanto costa?
2026 KernelHost GmbH. Tutti i diritti riservati. Questa guida è protetta dal diritto d'autore. La ripubblicazione su altri siti web, anche parziale o in forma modificata, non è consentita senza il nostro consenso scritto. Le citazioni con indicazione della fonte e un link sono le benvenute.

