Spustenie Nextcloud s NGINX umožňuje efektívne využitie systémových zdrojov spolu s flexibilnými možnosťami nasadenia. Na správne nastavenie budete potrebovať kompatibilné systémové prostredie a správnu konfiguráciu. Na hladkú integráciu s NGINX je potrebných aj niekoľko špecifických úprav.

Čo je NGINX a prečo ho kombinovať s Nextcloud?

NGINX je softvér webového servera založený na otvorenom zdrojovom kóde, ktorý môže slúžiť aj ako reverzný proxy server, vyrovnávač zaťaženia a HTTP cache. NGINX, pôvodne vyvinutý ruským softvérovým inžinierom Igorom Sysoevom, je distribuovaný pod licenciou BSD (BSD je varianta Unixu).

NGINX je navrhnutý tak, aby zvládal veľký počet pripojení súčasne. Na tento účel softvér využíva architektúru riadenú udalosťami, ktorá neblokuje. Na rozdiel od tradičných webových serverov, ktoré pre každé pripojenie vytvárajú nový proces alebo vlákno, NGINX spúšťa hlavný proces spolu s viacerými pracovnými procesmi. Hlavný proces sa stará o konfiguráciu, zatiaľ čo pracovné procesy spracovávajú prichádzajúce požiadavky klientov.

Spojenie Nextcloud s NGINX ponúka niekoľko kľúčových výhod pre vysoko výkonné prostredia, medzi ktoré patria:

  • Efektívne využitie zdrojov: NGINX dokáže spracovať viacero pripojení naraz s minimálnou spotrebou zdrojov.
  • Vynikajúca škálovateľnosť: NGINX podporuje flexibilné vyvažovanie zaťaženia a je ľahko škálovateľný pridaním ďalších serverov.
  • Vysoko prispôsobiteľná architektúra: Vďaka svojej modulárnej štruktúre sa NGINX dá prispôsobiť širokej škále scenárov.
  • Spoľahlivý výkon pri vysokom zaťažení servera: Aj pri vysokom zaťažení servera je NGINX spoľahlivý a zabezpečuje nepretržitú dostupnosť vašich služieb.
Poznámka

Keďže Nextcloud oficiálne podporuje iba Apache 2.x ako svoj webový server, neexistuje žiadna oficiálna podpora pre NGINX. Prevádzka Nextcloud s NGINX je preto najvhodnejšia pre používateľov so skúsenosťami s konfiguráciou webových serverov.

Aké sú požiadavky na prevádzku Nextcloud s NGINX?

Na spustenie Nextcloud na NGINX budete potrebovať server s operačným systémom Ubuntu, Debian alebo iným kompatibilným systémom. Server by mal mať minimálne 4 GB RAM a dva procesory. Pre väčšie konfigurácie s viacerými aplikáciami Nextcloud sa dôrazne odporúča väčšia pamäť a viac procesorových jadier. Budete tiež potrebovať dostatočný úložný priestor pre dáta a zálohy.

Na inštaláciu budete potrebovať aj kompatibilnú databázu, ako je MySQL alebo MariaDB, ako aj skriptovací jazyk PHP (minimálna verzia 8.1, odporúčaná verzia 8.3). Databáza sa používa na ukladanie údajov používateľov a údajov pluginov, ako aj metadát súborov. PHP je potrebné na spustenie základných funkcií Nextcloud. Na inštaláciu softvéru budete potrebovať aj účet s administrátorskými právami.

Ako nainštalovať Nextcloud s NGINX

Pred inštaláciou Nextcloud je potrebné vykonať niektoré základné prípravy. Táto príručka predpokladá, že máte server Ubuntu, na ktorom je už nainštalovaný systém a všetky potrebné závislosti. Patrí medzi ne webový server NGINX, databáza MySQL a PHP 8.3 so všetkými potrebnými rozšíreniami.

Inštalovali sme tiež Certbot pre jednoduché nastavenie SSL certifikátu s Let’s Encrypt. Predpokladáme tiež, že máte nastavenú doménu, aby ste mohli pristupovať k Nextcloud cez URL adresu namiesto IP adresy.

Ako stiahnuť a rozbaliť Nextcloud

Začnite vytvorením priečinka s názvom „nextcloud“ vo vašom domovskom adresári, kde budete ukladať inštalačné súbory. Hoci to môžete urobiť ručne prostredníctvom protokolu zmien Nextcloud, rýchlejšie je použiť nasledujúci príkaz Curl:

mkdir ~/nextcloud && cd ~/nextcloud
curl --output nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-30.0.5.zip
bash
Poznámka

Ak inštalujete inú verziu Nextcloud, nezabudnite aktualizovať URL adresu.

Potom rozbalte súbor, presuňte ho do koreňového adresára webu ./var/www a nastavte oprávnenia súboru:

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

Ako nastaviť databázu

Na nastavenie databázy MySQL spustite príkaz sudo sudo mysql_secure_installation. Zadajte „y“ na nastavenie hesla root (VALIDATE PASSWORD) a vyberte „2“ pre silné heslo (STRONG), ktoré potom môžete nastaviť. Stlačte „y“ na potvrdenie hesla, potom stlačte „y“ znova na odstránenie anonymných používateľov, deaktiváciu vzdialených prihlásení, odstránenie testovacej databázy a opätovné načítanie tabuliek oprávnení.

Potom postupujte podľa týchto krokov:

  1. Prihláste sa ako používateľ root pomocou sudo mysql -u root -p.
  2. Vytvorte databázu pomocou: create database nextcloud;.
  3. Vytvorte používateľa pomocou: create user 'nextcloud'@'localhost' identified by <new_password>;.
  4. Udelenie oprávnení pomocou: grant all privileges on nextcloud.* to 'nextcloud'@'localhost';.
  5. Nakoniec aktualizujte oprávnenia pomocou flush privileges; a ukončite konzolu databázy pomocou exit.

Po úspešnom nastavení databázy je potrebné pridať prihlasovacie údaje (DB_NAME, DB_USER, DB_PASSWORD) do konfiguračného súboru Nextcloud. Otvorte súbor ./var/www/nextcloud/config/config.php a pridajte príslušné položky:

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

Ako deaktivovať predvolenú konfiguráciu NGINX

Pred integráciou Nextcloud do NGINX sa musíte uistiť, že žiadne iné konfiguračné súbory neprepisujú inštaláciu Nextcloud. V predvolenom nastavení môže v ./etc/nginx/sites-enabled/ stále existovať konfiguračný súbor default, ktorý by mohol narušiť vaše nastavenie. Odstráňte ho pomocou:

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

Potom aktivujte svoju vlastnú konfiguráciu týmto príkazom:

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

Ako nakonfigurovať server NGINX

Na konfiguráciu NGINX ako webového servera by mala byť doména už nastavená a prepojená s IP adresou servera. Uistite sa, že je správne nastavené aj DNS. Vytvorte nový konfiguračný súbor NGINX v adresári sites-available pomocou:

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

(Ako URL sme použili exampledomain.co.uk.)

Otvorte konfiguračný súbor v textovom editore (napríklad Vim) pomocou:

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

Vložte blok kódu z časti „Nextcloud v podadresári webových koreňov NGINX“ dokumentácie konfigurácie Nextcloud NGINX.

Keďže certifikát HTTPS bude pridaný pomocou Certbot, odstráňte všetky riadky súvisiace s SSL z konfiguračného súboru NGINX. Certbot sa o ne postará automaticky.

Ako nastaviť SSL certifikát s Certbot

Ak chcete spustiť Nextcloud cez zabezpečené HTTPS pripojenie, musíte nastaviť SSL certifikát, v tomto prípade od Let’s Encrypt. Najskôr nakonfigurujte firewall tak, aby povolil HTTPS a SSH pripojenia pomocou nasledujúcich sudo príkazov:

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

Ďalej aktivujte firewall s sudo ufw enable a skontrolujte číslo sudo ufw status, aby ste sa uistili, že pripojenia sú povolené. Potom môžete vytvoriť certifikát SSL pomocou Certbot:

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

Postupujte podľa pokynov, zadajte svoju e-mailovú adresu pre obnovenie certifikátu a prijmite podmienky služby. Zvoľte možnosť 2, aby sa všetky požiadavky HTTP automaticky presmerovali na HTTPS. Certbot uloží súbory certifikátu do adresára .etc/letsencrypt/live/exampledomain.co.uk/. Súbor fullchain.pem obsahuje certifikát SSL a sú privkey.pem obsahuje súkromný kľúč. Musíte ich pridať do konfiguračného súboru NGINX:

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

Keďže Certbot upravil konfiguračný súbor, musíte opäť pridať atribút ssl medzi 443 a http2. Blok by mal vyzerať takto:

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

Ako reštartovať služby a pristupovať k Nextcloud

Aby sa zmeny uplatnili, je potrebné znovu načítať služby PHP-FPM a NGINX:

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

Teraz otvorte svoju doménu v prehliadači – v našom prípade exampledomain.co.uk. Ak bolo všetko správne nakonfigurované, mala by sa zobraziť uvítacie stránka Nextcloud.

Poznámka

Ak sa Nextcloud nenačíta, môže to byť spôsobené tým, že vaša doména nie je uvedená ako dôveryhodná doména v config.php. Pridajte ju tam, aby ste problém vyriešili.

Prejsť na hlavné menu