Storage Server használata a saját weboldalhoz: képek, letöltések, archívumok

Közzétéve 6 perc olvasás

A webszerveren a hely drága, a Storage Serveren nem. Ez a cikk megmutatja, mit érdemes áthelyezni, melyik protokoll működik a webszerverről, és hogyan érnek biztonságosan célba a fájlok a látogatóknál.

Egy webszerveren a lemezhely a legdrágább jószág. Gyors NVMe SSD-ken helyezkedik el, amelyeket adatbázisokhoz és PHP-hez építettek, és minden gigabájttal érezhetően drágább lesz. Ugyanakkor olyan dolgok is fekszenek rajta, amelyeknek erre a sebességre soha nincs szükségük: eredeti fotók, videófájlok, letöltési archívumok, régi biztonsági mentések.

Egy Storage Server ennek a töredékébe kerül, és pontosan ezt a terhet veszi le. Ez a cikk megmutatja, mit érdemes áthelyezni, melyik protokoll működik a webszerverről, hogyan érnek biztonságosan célba a fájlok a látogatóknál, és hol vannak a határok.

Mit érdemes áthelyezni, és mit nem

A Storage Serverre tartozikA webszerveren marad
Képek és videók eredeti példányaiBélyegképek és levágott változatok
Letöltési archívumok, ISO-fájlok, PDF-gyűjteményekCSS, JavaScript, betűtípusok
Nyers adatok, exportok, naplóarchívumokAz adatbázis
A weboldal biztonsági mentéseiMinden, amire minden oldalletöltésnél szükség van

A határvonal egyszerű: amit ritkán olvasnak, és ami egyszerre, nagy darabban megy át a vonalon, az a tárhelyre tartozik. Ami minden oldalletöltéssel együtt betöltődik, az ott marad, ahol gyors.

Mi az a Storage Server, és mi nem

A Storage Server hálózati tárhely felhasználói fiókokkal. Hitelesítő adatokkal kapcsolódik hozzá, és fájlokat olvas vagy ír. Nem objektumtároló nyilvános címekkel, és nem CDN.

A gyakorlatban ez azt jelenti: az oldalán nem hivatkozhat képre közvetlenül a tárhelyen, mert minden hozzáférés hitelesítéshez kötött. A webszervere lehozza a fájlt, és továbbadja, vagy saját maga állít elő időben korlátozott letöltési hivatkozásokat. Hogy ez hogyan megy tisztán, az lentebb következik.

Ez megkötésnek hangzik, pedig van egy előnye: senki nem tudja megszerezni a fájljait úgy, hogy címeket tippel, vagy továbbad egy hivatkozást. A hozzáférés mindig az alkalmazásán keresztül fut, tehát az Ön szabályai szerint.

A minta, amely a gyakorlatban működik

Három lépés, több nem kell:

  1. Az eredetik a tárhelyen fekszenek. Egyszer kerülnek fel, utána ritkán nyúl hozzájuk valaki.
  2. A származtatott változatok egyszer készülnek el, és a webszerveren maradnak. Tehát a bélyegképek, a levágott változatok, a tömörített verziók. Ezek kicsik, és minden oldalletöltésnél kellenek.
  3. A letöltések az alkalmazásán keresztül futnak. Egy kis szkript ellenőrzi a jogosultságot, lehozza a fájlt a tárhelyről, és kiadja.

Aki ezt megfordítja, és a bélyegképeket minden oldalletöltésnél frissen hozza le a tárhelyről, az lassú weboldalt épít magának. A fájlonkénti hálózati késleltetés összeadódik, és egy negyven képes galéria negyvenszer várakozik.

Melyik protokoll melyik esetre

ProtokollPortMire jóMit igényel
SMB / CIFS445Csatolás könyvtárkéntroot jogok a szerveren
SSHFS23Csatolás könyvtárként, titkosítvaroot jogok a szerveren
SFTP23Hozzáférés PHP-ből, szkriptek, átvitelekkimenő 23-as port
WebDAV HTTPS-en443Osztott webtárhely, korlátozott környezetekcsak HTTPS
rsync23Nagy könyvtárak összehangolásakimenő 23-as port
BorgBackup23Biztonsági mentés deduplikálássalkimenő 23-as port

A legfontosabb döntés nem az ízlésen múlik, hanem a jogosultságain: saját szerveren könyvtárként csatolja a tárhelyet, és minden alkalmazás használni tudja anélkül, hogy bármit tudna róla. Hogy ez hogyan megy, arról a Storage Server csatolása hálózati meghajtóként szól.

Osztott webtárhelyen (shared hosting) nincsenek root jogai, a csatolás tehát kiesik. Ott az út magából az alkalmazásból, WebDAV-on vagy SFTP-n keresztül vezet, és a WebDAV általában a kisebb ellenállás, mert a 443-as port gyakorlatilag soha nincs tiltva.

Hozzáférés beállítása PHP-ből

Az SFTP-hez elég egy tisztán PHP-ben írt programkönyvtár, nem kell hozzá kiterjesztés a szerveren:

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('A bejelentkezés nem sikerült');
}

// Fájl feltöltése
$sftp->put('/bilder/2026/original.jpg', '/tmp/upload.jpg', SFTP::SOURCE_LOCAL_FILE);

// Fájl beolvasása
$inhalt = $sftp->get('/bilder/2026/original.jpg');

WebDAV-hoz még a beépített curl kiterjesztés is elegendő:

$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);

Mindkét példa alfiókot használ, nem a főfiókot. Hogy miért, az a következő szakaszban áll.

Minden célra saját alfiók

Minden Storage Server legfeljebb 100 alfiókot engedélyez, mégpedig minden tarifában. Mindegyik kap:

  • saját kezdőkönyvtárat, amelyből nem jut ki,
  • saját jelszót,
  • saját protokollengedélyeket, tehát például csak SFTP-t, Sambát pedig nem.

Egy weboldal esetében ez azt jelenti: egy alfiók a webszervernek, amely csak SFTP-t használhat, és csak a /web könyvtárat látja, egy második a biztonsági mentésnek, amely csak a /backup könyvtárat látja. Ha a webszervert egyszer átveszi valaki, a támadó nem jut hozzá a mentésekhez, mert a fiók nem is ismeri őket.

Egy határ van: az alfiók nem kap saját helykontingenst. A saját könyvtárában marad, ott viszont a tarifa teljes tárhelyét megtöltheti. Aki az egyes felhasználókat valóban korlátozni akarja, annak egy alkalmazást kell elé tennie, amely ezt elvégzi. A Nextcloud összekapcsolása a Storage Serverrel pontosan ezt a felépítést mutatja be.

Letöltések biztonságos kiszolgálása

A leggyakoribb hiba az, hogy a hitelesítő adatok bejutnak a böngészőbe, például egy felhasználónevet és jelszót tartalmazó hivatkozással. A helyes megoldás az, hogy a szervere építi fel a kapcsolatot, és továbbadja a fájlt:

<?php
// A jogosultság ellenőrzése, mielőtt bármi történik
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;

Nagyon nagy fájloknál jobb blokkokban olvasni, mint mindent a memóriába tölteni, különben túllépi a PHP memóriakorlátját. Ehhez használja az ob_end_flush() hívást, és darabokban adja ki a fájlt.

Aki sok egyidejű letöltésre számít, annak azt is érdemes észben tartania, hogy minden futó letöltés lefoglal egy PHP-folyamatot. Egy bizonyos nagyságrend felett az ilyen dolog saját szerver mögé tartozik, nem osztott webtárhely mögé.

A weboldal mentése a Storage Serverre

Ez a legegyszerűbb belépési pont, és azonnal hoz is valamit. Az rsync csak a változásokat viszi át:

rsync -az --delete -e "ssh -p 23" \
      /var/www/example.com/ \
      u123456-sub2@u123456.storage.kernelhost.net:/backup/web/

Deduplikálással és titkosítással készülő mentésekhez a BorgBackup a jobb választás, a tárhelyen natívan rendelkezésre áll. Ehhez jönnek második szintként magának a tárhelynek a pillanatképei: tarifától függően 10, 20, 30 vagy 40 kézi pillanatkép, és ugyanennyi automatikus napi, heti és havi ütemben.

Az ugyanazon a szerveren tartott mentéshez képest ez a döntő különbség: egy letörölt vagy titkosított merevlemez magával viszi a helyi mentést, a külön tárhelyen álló mentést viszont nem.

Mielőtt elkezdi: két kapcsoló

Az ügyfélportálon a Storage Server alatt találja a „Hozzáférési beállítások” gombot. Két dolognak rendben kell lennie:

  • A Külső elérhetőség kapcsolót be kell kapcsolni, különben a webszervere az interneten keresztül nem jut el a tárhelyig.
  • A kívánt protokollt engedélyezni kell, tehát a Sambát az SMB-hez, az SSH-t az SFTP-hez és az rsynchez, a WebDAV-ot a HTTPS-es úthoz.

Újonnan megrendelt szervereknél ezek mind aktívak. Aki biztonsági okokból kikapcsolja, amire nincs szüksége, annak érdemes észben tartania, hogy később pontosan ez a leggyakoribb oka a „nem működik többé” jelenségnek.

Melyik tarifa illik

TarifaHelyAlfiókokPillanatképekÁr
Storage-11 TB10010 plusz 10 automatikus9,99 EUR
Storage-25 TB10020 plusz 20 automatikus29,99 EUR
Storage-310 TB10030 plusz 30 automatikus39,99 EUR
Storage-420 TB10040 plusz 40 automatikus69,99 EUR

Minden Storage Server Németországban áll, beszéli az FTP, FTPS, SFTP, SCP, Samba, WebDAV és WebDAVs protokollt, natívan hozza az rsyncet és a BorgBackupot, és van IPv4-e és IPv6-a. Beállítási díj nincs, az elszámolás PrePaid alapon, minimális futamidő nélkül történik. Kezdheti tehát 1 TB-tal, és később bővíthet, költözés nélkül.

Egy számpélda: 1 TB további hely egy webszerveren szolgáltatótól függően a havi 9,99 euró többszörösébe kerül, és ráadásul ugyanazon a gépen fekszik, mint a weboldal. A mellette álló tárhely nem csak kedvezőbb, hanem külön is áll.

Gyakori kérdések

Beágyazhatok képeket közvetlenül a Storage Serverről a weboldalamba?
Közvetlen hivatkozással az img címkében nem. A Storage Server nem nyilvános webszerver, minden hozzáférés hitelesítéshez kötött. A webszervere lehozza a fájlt, és továbbadja, vagy időben korlátozott letöltési hivatkozásokat állít elő. Bélyegképeknél a jobb út az, ha egyszer elkészíti őket, és a webszerver gyorsítótárában tartja.
Melyik protokollt válasszam a webszerverről?
Saját szerveren, root jogokkal az SMB vagy az SSHFS a legkényelmesebb, a tárhely ilyenkor közönséges könyvtárként jelenik meg. Osztott webtárhelyen, root jogok nélkül ez nem megy, ott a HTTPS-en futó WebDAV a legkisebb ellenállás útja, mert a 443-as port gyakorlatilag soha nincs tiltva.
Kiváltja a Storage Server a CDN-t?
Nem. A CDN sok helyszínre szétszórja a másolatokat, és közvetlenül a látogatóknak szolgálja ki őket. A Storage Server egyetlen helyszínen álló tárolóhely, amelynek minden hozzáférése hitelesítéshez kötött. A kettő kiegészíti egymást: az eredetik a tárhelyen, a kiszolgált változatok a webszerveren vagy a CDN-en keresztül.
Hány alfiókot hozhatok létre?
Legfeljebb 100-at, minden tarifában. Minden alfióknak saját kezdőkönyvtára, saját jelszava és saját protokollengedélyei vannak. Így a weboldal olyan fiókot kap, amely csak SFTP-t használhat, és csak a saját könyvtárát látja, a biztonsági mentés pedig egy külön fiókot.
Kioszthatok saját tárhelykvótát egy alfióknak?
Nem, alfiókonkénti kvóta nincs. Az alfiók a saját könyvtárában marad, ott viszont a tarifa teljes helyét elfoglalhatja. Aki az egyes felhasználókat korlátozni akarja, annak ezt a saját alkalmazásában kell megtennie.
Milyen gyors a hozzáférés?
Nagy fájlok egyhuzamban való átvitelénél nagyon jó, a szűk keresztmetszet a webszerver hálózati kapcsolata. Sok apró, egymás utáni hozzáférésnél fájlonként hozzáadódik a hálózati késleltetés. Ezért tartoznak az eredetik és az archívumok a tárhelyre, a sokszor letöltött apróságok, például a bélyegképek viszont a webszerver gyorsítótárába.
Láthatóak a hitelesítő adatok a böngészőben?
Csak akkor, ha hibásan építi fel. A helyes megoldás az, hogy a webszerver építi fel a kapcsolatot, és továbbadja a fájlt. A hitelesítő adatok ilyenkor a szerveren maradnak, és sem a forráskódban, sem egy címben nem jelennek meg.
Elkészíthetem vele a weboldalam biztonsági mentését is?
Igen, és ez a legegyszerűbb belépési pont. Az rsync vagy a BorgBackup csak a változásokat viszi át, ehhez jönnek második szintként a tárhely pillanatképei. Tarifától függően 10 és 40 közötti pillanatkép lehetséges, és ugyanennyi automatikus.
Szükségem van ehhez saját szerverre?
Nem. Osztott webtárhelyről is működik, akkor WebDAV-on vagy SFTP-n keresztül, PHP-ből. Csak a meghajtóként való csatolás igényel root jogokat, és ezzel saját szervert.
Mennyibe kerül?
A Storage-1 1 TB-tal havi 9,99 euró, a Storage-2 5 TB-tal 29,99, a Storage-3 10 TB-tal 39,99, a Storage-4 20 TB-tal pedig 69,99. Beállítási díj nélkül, PrePaid alapon és minimális futamidő nélkül, a helyszín Németország.

Storage Server Webserver WebDAV SFTP Mediendateien Downloads Backup