A Nextcloud NGINX-szel való futtatása lehetővé teszi a rendszer erőforrásainak hatékony felhasználását és rugalmas telepítési lehetőségeket kínál. A megfelelő beállításhoz kompatibilis rendszerkörnyezetre és megfelelő konfigurációra van szükség. A NGINX-szel való zökkenőmentes integrációhoz néhány speciális beállításra is szükség van.

Mi az NGINX és miért érdemes a Nextclouddal párosítani?

Az NGINX egy nyílt forráskódú webszerver szoftver, amely fordított proxy szerverként, terheléselosztóként és HTTP-gyorsítótárként is működhet. Az NGINX-et eredetileg az orosz szoftvermérnök Igor Sysoev fejlesztette ki, és BSD licenc alatt terjesztik (a BSD egy Unix-változat).

Az NGINX úgy lett kialakítva, hogy egyszerre nagy számú kapcsolatot tudjon kezelni. Ehhez a szoftver eseményvezérelt, nem blokkoló architektúrát használ. A hagyományos webszerverekkel ellentétben, amelyek minden kapcsolat esetén új folyamatot vagy szálat indítanak, az NGINX egy főfolyamatot futtat több munkásfolyamat mellett. A főfolyamat a konfigurációt kezeli, míg a munkásfolyamatok a beérkező ügyfélkérelmeket dolgozzák fel.

A Nextcloud és az NGINX párosítása számos fontos előnyt kínál a nagy teljesítményű környezetek számára, többek között:

  • Hatékony erőforrás-felhasználás: Az NGINX egyszerre több kapcsolatot is képes kezelni, minimális erőforrás-felhasználás mellett.
  • Kiváló skálázhatóság: Az NGINX rugalmas terheléselosztást támogat, és további szerverek hozzáadásával könnyen skálázható.
  • Magasan testreszabható architektúra: moduláris felépítésének köszönhetően az NGINX számos különböző helyzethez alkalmazkodik.
  • Megbízható teljesítmény nagy szerverterhelés mellett: Még akkor is, ha a szerver nagy terhelés alatt van, az NGINX megbízhatóan működik, és szolgáltatásai folyamatosan elérhetők maradnak.
Megjegyzés

Mivel a Nextcloud hivatalosan csak az Apache 2.x-et támogatja webszerverként, az NGINX nem részesül hivatalos támogatásban. Az NGINX-szel való Nextcloud futtatás ezért leginkább azoknak a felhasználóknak ajánlott, akik rendelkeznek webszerver-konfigurációs tapasztalattal.

Milyen követelményeknek kell megfelelni a Nextcloud NGINX-szel való futtatásához?

A Nextcloud NGINX-en való futtatásához Ubuntu, Debian vagy más kompatibilis rendszert futtató szerverre van szükség. A szervernek legalább 4 GB RAM-mal és két CPU-val kell rendelkeznie. Több Nextcloud alkalmazást futtató nagyobb rendszerek esetén erősen ajánlott több memória és CPU mag használata. Emellett megfelelő tárhelyre is szükség van az adatok és a biztonsági másolatok tárolásához.

A telepítéshez szükséged lesz egy kompatibilis adatbázisra is, például MySQL vagy MariaDB, valamint a PHP szkriptnyelvre (minimum 8.1-es verzió, ajánlott 8.3-as verzió). Az adatbázis a felhasználói adatok és a bővítmények adatainak, valamint a fájlok metaadatainak tárolására szolgál. A PHP szükséges a Nextcloud alapvető funkcióinak futtatásához. A szoftver telepítéséhez adminisztrátori jogokkal rendelkező fiókra is szükséged lesz.

Hogyan telepítsük a Nextcloudot NGINX-szel

A Nextcloud telepítése előtt el kell végezni néhány alapvető előkészületet. Ez az útmutató egy Ubuntu szervert feltételez, amelyen a rendszer és az összes szükséges függőség már telepítve van. Ide tartozik az NGINX webszerver, a MySQL adatbázis és a PHP 8.3 az összes szükséges kiterjesztéssel.

A Let’s Encrypt segítségével az SSL-tanúsítványok egyszerű beállításához Certbotot is telepítettünk. Feltételezzük továbbá, hogy rendelkezik domainnel, így a Nextcloudhoz URL-címen keresztül férhet hozzá, nem pedig IP-címen.

Hogyan lehet letölteni és kicsomagolni a Nextcloudot?

Először hozzon létre egy „nextcloud” nevű mappát a home könyvtárában, hogy ott tárolja a telepítő fájlokat. Ezt megteheti manuálisan a Nextcloud változásnapló segítségével, de gyorsabb, ha a következő Curl parancsot használja:

mkdir ~/nextcloud && cd ~/nextcloud
curl --output nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-30.0.5.zip
bash
Megjegyzés

Ha a Nextcloud egy másik verzióját telepíti, ügyeljen arra, hogy az URL-t ennek megfelelően frissítse.

Ezután csomagolja ki a fájlt, helyezze át a webgyökérbe ./var/www, és állítsa be a fájl jogosultságait:

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

Az adatbázis beállítása

A MySQL adatbázis beállításához futtassa a sudo parancsot sudo mysql_secure_installation. Írja be az „y” betűt a root jelszó beállításához (VALIDATE PASSWORD), majd válassza a „2” lehetőséget egy erős jelszóhoz (STRONG), amelyet ezután beállíthat. Nyomja meg az „y” gombot a jelszó megerősítéséhez, majd nyomja meg újra az „y” gombot az anonim felhasználók eltávolításához, a távoli bejelentkezések letiltásához, a tesztadatbázis eltávolításához és a jogosultsági táblák újratöltéséhez.

Ezután kövesse az alábbi lépéseket:

  1. Jelentkezzen be root felhasználóként a sudo mysql -u root -p.
  2. Hozza létre az adatbázist a következő paranccsal: create database nextcloud;.
  3. Hozza létre a felhasználót a következővel: create user 'nextcloud'@'localhost' identified by <new_password>;.
  4. Adjon meg jogosultságokat a következővel: grant all privileges on nextcloud.* to 'nextcloud'@'localhost';.
  5. Végül frissítse a jogosultságokat flush privileges; segítségével, és lépjen ki az adatbázis-konzolból exit segítségével.

Miután az adatbázis sikeresen fel lett állítva, hozzá kell adnia a hitelesítő adatokat (DB_NAME, DB_USER, DB_PASSWORD) a Nextcloud konfigurációs fájlhoz. Nyissa meg a ./var/www/nextcloud/config/config.php fájlt, és adja hozzá a megfelelő bejegyzéseket:

'dbtype' => 'mysql',
'dbname' => 'nextcloud',
'dbuser' => 'nextcloud',
'dbpassword' => '<your_password>',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
txt

Hogyan lehet letiltani az NGINX alapértelmezett konfigurációját?

Mielőtt a Nextcloudot integrálná az NGINX-be, meg kell győződnie arról, hogy nincs más konfigurációs fájl, amely felülírná a Nextcloud telepítését. Alapértelmezés szerint még mindig lehet egy default konfigurációs fájl ./etc/nginx/sites-enabled/, amely zavarhatja a beállítást. Távolítsa el a következő paranccsal:

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

Ezután aktiválja az egyéni konfigurációt ezzel a paranccsal:

sudo ln -s /etc/nginx/sites-available/exampledomain.co.uk /etc/nginx/sites-enabled/
bash

Az NGINX szerver konfigurálása

Az NGINX webkiszolgálóként való konfigurálásához a domainnek már be kell lennie állítva és a szerver IP-címéhez kapcsolva. Győződjön meg arról, hogy a DNS is helyesen van beállítva. Hozzon létre egy új NGINX konfigurációs fájlt a sites-available könyvtárban a következő paranccsal:

sudo touch /etc/nginx/sites-available/exampledomain.co.uk
bash

(Az URL-ként exampledomain.co.uk használtuk.)

Nyissa meg a konfigurációs fájlt egy szövegszerkesztőben (például Vim) a következő paranccsal:

sudo vim /etc/nginx/sites-available/exampledomain.co.uk
bash

Illessze be a kódblokkot a Nextcloud NGINX konfigurációs dokumentáció „Nextcloud az NGINX webgyökérkönyvtár egyik almappájában” szakaszából.

Mivel a HTTPS tanúsítványt a Certbot fogja hozzáadni, távolítson el minden SSL-hez kapcsolódó sort az NGINX konfigurációs fájlból. A Certbot ezeket automatikusan kezeli.

Hogyan állítsunk be SSL-tanúsítványt a Certbot segítségével?

Ahhoz, hogy a Nextcloudot biztonságos HTTPS-kapcsolaton keresztül futtassa, be kell állítania egy SSL-tanúsítványt, ebben az esetben a Let’s Encrypt-től. Először konfigurálja a tűzfalat úgy, hogy engedélyezze a HTTPS- és SSH-kapcsolatokat a következő sudo parancsokkal:

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

Ezután engedélyezze a tűzfalat sudo ufw enable segítségével, és ellenőrizze sudo ufw status segítségével, hogy a kapcsolatok engedélyezve vannak-e. Ezután létrehozhatja az SSL-tanúsítványt a Certbot segítségével:

sudo certbot --nginx -d exampledomain.co.uk
bash

Kövesse az utasításokat, hogy megadja e-mail címét a tanúsítvány megújításához, és elfogadja a szolgáltatási feltételeket. Válassza a 2. opciót, hogy az összes HTTP-kérelmet automatikusan HTTPS-re irányítsa át. A Certbot a tanúsítványfájlokat a .etc/letsencrypt/live/exampledomain.co.uk/ könyvtárba menti. A fullchain.pem fájl tartalmazza az SSL-tanúsítványt, privkey.pem pedig a titkos kulcsot. Ezeket hozzá kell adnia az NGINX konfigurációs fájljához:

ssl_certificate /etc/letsencrypt/live/exampledomain.co.uk/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exampledomain.co.uk/privkey.pem;
txt

Mivel a Certbot módosította a konfigurációs fájlt, újra hozzá kell adnia a ssl attribútumot 443 és http2 közé. A blokknak így kell kinéznie:

server { 
    listen 443 ssl http2; 
    listen [::]:443 ssl http2; 
    server_name exampledomain.co.uk;
}
txt

A szolgáltatások újraindítása és a Nextcloud elérés

Ahhoz, hogy a változások hatályba lépjenek, újra kell töltenie a PHP-FPM és NGINX szolgáltatásokat:

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

Most nyissa meg a domainjét a böngészőben – a mi esetünkben az exampledomain.co.uk oldalt. Ha minden helyesen van beállítva, akkor megjelenik a Nextcloud üdvözlő oldala.

Megjegyzés

Ha a Nextcloud nem töltődik be, az oka lehet, hogy a domainje nem szerepel config.php pontban a Megbízható domainként. Adja hozzá oda a problémát megoldani.

Ugrás a főmenübe