Ako nainštalovať a nastaviť Nextcloud s NGINX
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.
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.zipbashAk 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/nextcloudbashAko 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:
- Prihláste sa ako používateľ root pomocou
sudo mysql -u root -p. - Vytvorte databázu pomocou:
create database nextcloud;. - Vytvorte používateľa pomocou:
create user 'nextcloud'@'localhost' identified by <new_password>;. - Udelenie oprávnení pomocou:
grant all privileges on nextcloud.* to 'nextcloud'@'localhost';. - Nakoniec aktualizujte oprávnenia pomocou
flush privileges;a ukončite konzolu databázy pomocouexit.
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,txtAko 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/defaultbashPotom aktivujte svoju vlastnú konfiguráciu týmto príkazom:
sudo ln -s /etc/nginx/sites-available/exampledomain.co.uk /etc/nginx/sites-enabled/bashAko 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.ukbash(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.ukbashVlož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.ukbashPostupujte 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;txtKeďž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;
}txtAko 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.servicebashTeraz 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.
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.