Spuštění Nextcloud s NGINX umožňuje efektivní využití systémových zdrojů a flexibilní možnosti nasazení. Pro správné nastavení budete potřebovat kompatibilní systémové prostředí a správnou konfiguraci. Pro hladkou integraci s NGINX je také nutné provést několik konkrétních úprav.

Co je NGINX a proč jej kombinovat s Nextcloud?

NGINX je webový serverový software založený na open source, který může sloužit také jako reverzní proxy server, vyvažovač zatížení a HTTP cache. NGINX, původně vyvinutý ruským softwarovým inženýrem Igorem Sysoevem, je distribuován pod licencí BSD (BSD je varianta Unixu).

NGINX je navržen tak, aby zvládal velké množství připojení současně. K tomu software využívá událostmi řízenou, neblokující architekturu. Na rozdíl od tradičních webových serverů, které pro každé připojení spouštějí nový proces nebo vlákno, NGINX spouští hlavní proces společně s několika pracovními procesy. Hlavní proces se stará o konfiguraci, zatímco pracovní procesy zpracovávají příchozí požadavky klientů.

Spojení Nextcloud s NGINX nabízí několik klíčových výhod pro vysoce výkonná prostředí, včetně:

  • Efektivní využití zdrojů: NGINX dokáže zpracovat více připojení najednou s minimální spotřebou zdrojů.
  • Vynikající škálovatelnost: NGINX podporuje flexibilní vyvažování zátěže a lze jej snadno škálovat přidáním dalších serverů.
  • Vysoce přizpůsobitelná architektura: Díky své modulární struktuře lze NGINX přizpůsobit široké škále scénářů.
  • Spolehlivý výkon při vysokém zatížení serveru: I při vysokém zatížení serveru je NGINX spolehlivý a zajišťuje nepřetržitou dostupnost vašich služeb.
Poznámka

Vzhledem k tomu, že Nextcloud oficiálně podporuje pouze Apache 2.x jako webový server, neexistuje oficiální podpora pro NGINX. Provozování Nextcloud s NGINX je proto nejvhodnější pro uživatele se zkušenostmi s konfigurací webových serverů.

Jaké jsou požadavky pro provozování Nextcloud s NGINX?

Chcete-li spustit Nextcloud na NGINX, budete potřebovat server s operačním systémem Ubuntu, Debian nebo jiným kompatibilním systémem. Server by měl mít alespoň 4 GB RAM a dva procesory. Pro větší instalace s více aplikacemi Nextcloud se důrazně doporučuje více paměti a procesorových jader. Budete také potřebovat dostatečný úložný prostor pro data a zálohy.

K instalaci budete také potřebovat kompatibilní databázi, jako je MySQL nebo MariaDB, a skriptovací jazyk PHP (minimální verze 8.1, doporučená verze 8.3). Databáze slouží k ukládání uživatelských dat a dat pluginů, stejně jako metadat souborů. PHP je nutné k provozu základních funkcí Nextcloud. K instalaci softwaru budete také potřebovat účet s administrátorskými právy.

Jak nainstalovat Nextcloud s NGINX

Před instalací Nextcloud je třeba provést některé nezbytné přípravy. Tento průvodce předpokládá, že máte server Ubuntu, na kterém je již nainstalován systém a všechny potřebné závislosti. Patří mezi ně webový server NGINX, databáze MySQL a PHP 8.3 se všemi potřebnými rozšířeními.

Nainstalovali jsme také Certbot pro snadné nastavení SSL certifikátu s Let’s Encrypt. Předpokládáme také, že máte nastavenou doménu, abyste mohli přistupovat k Nextcloud prostřednictvím URL adresy namísto IP adresy.

Jak stáhnout a rozbalit Nextcloud

Začněte vytvořením složky s názvem „nextcloud“ ve svém domovském adresáři, kde budou uloženy instalační soubory. I když to lze provést ručně pomocí changelogu Nextcloud, rychlejší je použít následující příkaz Curl:

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

Pokud instalujete jinou verzi Nextcloud, nezapomeňte odpovídajícím způsobem aktualizovat URL.

Poté soubor rozbalte, přesuňte jej do kořenového adresáře webu ./var/www a nastavte oprávnění souboru:

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

Jak nastavit databázi

Chcete-li nastavit databázi MySQL, spusťte příkaz sudo sudo mysql_secure_installation. Zadejte „y“ pro nastavení hesla root (VALIDATE PASSWORD) a vyberte „2“ pro silné heslo (STRONG), které pak můžete nastavit. Stiskněte „y“ pro potvrzení hesla, poté stiskněte znovu „y“ pro odstranění anonymních uživatelů, deaktivaci vzdálených přihlášení, odstranění testovací databáze a znovu načtení tabulek oprávnění.

Poté postupujte podle těchto kroků:

  1. Přihlaste se jako uživatel root pomocí sudo mysql -u root -p.
  2. Vytvořte databázi pomocí: create database nextcloud;.
  3. Vytvořte uživatele pomocí: create user 'nextcloud'@'localhost' identified by <new_password>;.
  4. Udělejte oprávnění pomocí: grant all privileges on nextcloud.* to 'nextcloud'@'localhost';.
  5. Nakonec aktualizujte oprávnění pomocí flush privileges; a ukončete databázovou konzoli pomocí exit.

Po úspěšném nastavení databáze je třeba přidat přihlašovací údaje (DB_NAME, DB_USER, DB_PASSWORD) do konfiguračního souboru Nextcloud. Otevřete soubor ./var/www/nextcloud/config/config.php a přidejte příslušné položky:

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

Jak deaktivovat výchozí konfiguraci NGINX

Před integrací Nextcloud do NGINX je třeba se ujistit, že žádné jiné konfigurační soubory nepřepisují instalaci Nextcloud. Ve výchozím nastavení může v ./etc/nginx/sites-enabled/ stále existovat konfigurační soubor default, který by mohl narušit vaše nastavení. Odstraňte jej pomocí:

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

Poté aktivujte vlastní konfiguraci tímto příkazem:

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

Jak nakonfigurovat server NGINX

Chcete-li nakonfigurovat NGINX jako webový server, měla by být již nastavena doména a propojena s IP adresou serveru. Ujistěte se, že je správně nastaveno také DNS. Vytvořte nový konfigurační soubor NGINX v adresáři sites-available pomocí:

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

(Jako URL jsme použili exampledomain.co.uk.)

Otevřete konfigurační soubor v textovém editoru (například Vim) pomocí:

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

Vložte blok kódu z části „Nextcloud v podadresáři webových kořenů NGINX“ dokumentace k konfiguraci Nextcloud NGINX.

Vzhledem k tomu, že certifikát HTTPS bude přidán pomocí Certbot, odstraňte všechny řádky související s SSL z konfiguračního souboru NGINX. Certbot se o ně postará automaticky.

Jak nastavit SSL certifikát pomocí Certbot

Chcete-li spustit Nextcloud přes zabezpečené HTTPS připojení, musíte nastavit SSL certifikát, v tomto případě od Let’s Encrypt. Nejprve nakonfigurujte firewall tak, aby povoloval HTTPS a SSH připojení pomocí následujících příkazů sudo:

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

Dále povolte firewall pomocí sudo ufw enable a zkontrolujte pomocí sudo ufw status, zda jsou připojení povolena. Poté můžete vytvořit certifikát SSL pomocí Certbot:

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

Postupujte podle pokynů, zadejte svou e-mailovou adresu pro obnovení certifikátu a přijměte podmínky služby. Vyberte možnost 2, aby se všechny požadavky HTTP automaticky přesměrovaly na HTTPS. Certbot uloží soubory certifikátu do adresáře .etc/letsencrypt/live/exampledomain.co.uk/. Soubor fullchain.pem obsahuje certifikát SSL a privkey.pem obsahuje soukromý klíč. Musíte je přidat do konfiguračního souboru NGINX:

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

Vzhledem k tomu, že Certbot upravil konfigurační soubor, je třeba znovu přidat atribut ssl mezi 443 a http2. Blok by měl vypadat takto:

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

Jak restartovat služby a přistupovat k Nextcloud

Aby se změny projevily, je třeba znovu načíst služby PHP-FPM a NGINX:

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

Nyní otevřete svou doménu v prohlížeči – v našem případě exampledomain.co.uk. Pokud bylo vše nakonfigurováno správně, měla by se zobrazit úvodní stránka Nextcloud.

Poznámka

Pokud se Nextcloud nenačte, může to být způsobeno tím, že vaše doména není uvedena jako důvěryhodná doména v config.php. Přidejte ji tam, abyste problém vyřešili.

Přejít do hlavního menu