Zagon strežnika Nextcloud s stre­žni­kom NGINX omogoča učin­ko­vi­to iz­ko­ri­šča­nje sis­tem­skih virov ter pri­la­go­dlji­ve možnosti na­me­sti­tve. Za pravilno na­sta­vi­tev po­tre­bu­je­te zdru­žlji­vo sistemsko okolje in ustrezno kon­fi­gu­ra­ci­jo. Za nemoteno in­te­gra­ci­jo s stre­žni­kom NGINX je potrebnih tudi nekaj posebnih pri­la­go­di­tev.

Kaj je NGINX in zakaj ga povezati z Ne­xt­clo­u­dom?

NGINX je od­pr­to­ko­dna pro­gram­ska oprema za spletne strežnike, ki lahko deluje tudi kot strežnik za povratni proxy, po­raz­de­lje­val­nik obre­me­ni­tve in HTTP-pred­po­mnil­nik. Pro­gram­sko opremo NGINX, ki jo je prvotno razvil ruski inženir pro­gram­ske opreme Igor Sysoev, se di­s­tri­bu­i­ra pod licenco BSD (BSD je različica sistema Unix).

NGINX je zasnovan za sočasno obdelavo velikega števila povezav. Za to program uporablja ar­hi­tek­tu­ro, ki temelji na dogodkih in ne povzroča blokad. Za razliko od tra­di­ci­o­nal­nih spletnih stre­žni­kov, ki za vsako povezavo ustvarijo nov proces ali niti, NGINX poleg več delovnih procesov izvaja tudi glavni proces. Glavni proces skrbi za kon­fi­gu­ra­ci­jo, delovni procesi pa ob­de­lu­je­jo pri­ha­ja­jo­če zahteve od­je­mal­cev.

Povezava Ne­xt­clo­u­da z NGINX-om prinaša več ključnih prednosti za visoko zmogljiva okolja, med drugim:

  • Učin­ko­vi­ta raba virov: NGINX lahko hkrati obdeluje več povezav z minimalno porabo virov.
  • Odlična ska­la­bil­nost: NGINX podpira pri­la­go­dlji­vo po­raz­de­li­tev obre­me­ni­tve in je z do­da­ja­njem dodatnih stre­žni­kov enostavno ska­la­bi­len.
  • Visoko pri­la­go­dlji­va ar­hi­tek­tu­ra: Za­hva­lju­joč modularni strukturi se NGINX lahko prilagodi širokemu spektru sce­na­ri­jev.
  • Za­ne­slji­va zmo­glji­vost ob visoki obre­me­ni­tvi strežnika: tudi ko je strežnik močno obre­me­njen, je NGINX zanesljiv in za­go­ta­vlja ne­pre­ki­nje­no raz­po­lo­žlji­vost vaših storitev.
Note

Ker Nextcloud uradno podpira le Apache 2.x kot spletni strežnik, za NGINX ni uradne podpore. Zato je uporaba Ne­xt­clo­u­da z NGINX-om najbolj primerna za upo­rab­ni­ke, ki imajo izkušnje z na­sta­vi­tvi­jo spletnih stre­žni­kov.

Kakšne so zahteve za zagon Ne­xt­clo­u­da z NGINX-om?

Za zagon Ne­xt­clo­u­da na strežniku NGINX po­tre­bu­je­te strežnik z ope­ra­cij­skim sistemom Ubuntu, Debian ali drugim zdru­žlji­vim sistemom. Strežnik mora imeti vsaj 4 GB po­mnil­ni­ka RAM in dva pro­ce­sor­ska jedra. Za večje kon­fi­gu­ra­ci­je z več apli­ka­ci­ja­mi Nextcloud močno pri­po­ro­ča­mo več po­mnil­ni­ka in več pro­ce­sor­skih jeder. Po­tre­bo­va­li boste tudi zadosten prostor za shra­nje­va­nje podatkov in var­no­stnih kopij.

Za na­me­sti­tev boste po­tre­bo­va­li tudi zdru­žlji­vo bazo podatkov, kot sta MySQL ali MariaDB, ter skriptni jezik PHP (najmanj različica 8.1, pri­po­ro­če­na je različica 8.3). Baza podatkov se uporablja za shra­nje­va­nje podatkov o upo­rab­ni­kih in vtičnikih ter me­ta­po­dat­kov o datotekah. PHP je potreben za izvajanje osnovnih funkcij Ne­xt­clo­u­da. Za na­me­sti­tev pro­gram­ske opreme boste po­tre­bo­va­li tudi račun z upra­vi­telj­ski­mi pravicami.

Kako namestiti Nextcloud z NGINX

Pred na­me­sti­tvi­jo Ne­xt­clo­u­da je treba opraviti nekaj nujnih priprav. Ta navodila pred­vi­de­va­jo strežnik Ubuntu, na katerem so sistem in vse potrebne od­vi­sno­sti že nameščene. Mednje spadajo NGINX kot spletni strežnik, MySQL kot po­dat­kov­na baza ter PHP 8.3 z vsemi po­treb­ni­mi raz­ši­ri­tva­mi.

Namestili smo tudi Certbot za enostavno na­sta­vi­tev SSL-potrdila s sto­ri­tvi­jo Let’s Encrypt. Pred­vi­de­va­mo tudi, da imate na­sta­vlje­no domeno, tako da lahko do Ne­xt­clo­u­da dostopate prek URL-ja in ne prek IP-naslova.

Tip

Kako prenesti in raz­pa­ki­ra­ti Nextcloud

Najprej v svojem domovskem imeniku ustvarite mapo z imenom »nextcloud«, v kateri boste shranili na­me­sti­tve­ne datoteke. Čeprav lahko to storite ročno s pomočjo seznama sprememb Ne­xt­clo­u­da, je hitreje, če uporabite naslednji ukaz Curl:

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

Če namestite drugo različico Ne­xt­clo­u­da, poskrbite, da ustrezno po­so­do­bi­te URL-naslov.

Nato raz­pa­ki­raj­te datoteko, jo pre­ma­kni­te v korenski imenik spletnega strežnika ./var/www in nastavite pravice za datoteko:

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

Kako nastaviti bazo podatkov

Za na­me­sti­tev po­dat­kov­ne zbirke MySQL izvedite ukaz sudo ( sudo mysql_secure_installation. Vnesite »y«, da nastavite geslo za upo­rab­ni­ka root (VALIDATE PASSWORD), in izberite »2« za močno geslo (STRONG), ki ga nato lahko nastavite. Pri­ti­sni­te »y«, da potrdite geslo, nato pa še enkrat »y«, da od­stra­ni­te anonimne upo­rab­ni­ke, one­mo­go­či­te oddaljene prijave, od­stra­ni­te testno po­dat­kov­no zbirko in ponovno naložite tabele pri­vi­le­gi­jev.

Nato sledite tem korakom:

  1. Prijavite se kot uporabnik root s pomočjo sudo mysql -u root -p.
  2. Ustvarite bazo podatkov z uporabo: create database nextcloud;.
  3. Ustvarite upo­rab­ni­ka s pomočjo: create user 'nextcloud'@'localhost' identified by <new_password>;.
  4. Dodelite do­vo­lje­nja s pomočjo: grant all privileges on nextcloud.* to 'nextcloud'@'localhost';.
  5. Na koncu po­so­do­bi­te pri­vi­le­gi­je s pomočjo flush privileges; in zaprite konzolo baze podatkov s pomočjo exit.

Ko je baza podatkov uspešno na­sta­vlje­na, morate v kon­fi­gu­ra­cij­sko datoteko Ne­xt­clo­u­da vnesti prijavne podatke (DB_NAME, DB_USER, DB_PASSWORD). Odprite datoteko ./var/www/nextcloud/config/config.php in vnesite ustrezne vnose:

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

Kako one­mo­go­či­ti privzeto kon­fi­gu­ra­ci­jo NGINX-a

Preden vključite Nextcloud v NGINX, se morate pre­pri­ča­ti, da nobena druga kon­fi­gu­ra­cij­ska datoteka ne prevlada nad na­me­sti­tvi­jo Ne­xt­clo­u­da. Privzeto je morda v ./etc/nginx/sites-enabled/ še vedno prisotna kon­fi­gu­ra­cij­ska datoteka default, ki bi lahko motila vašo na­me­sti­tev. Od­stra­ni­te jo z na­sle­dnjim ukazom:

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

Nato s tem ukazom ak­ti­vi­raj­te svojo pri­la­go­je­no kon­fi­gu­ra­ci­jo:

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

Kako nastaviti strežnik NGINX

Za na­sta­vi­tev strežnika NGINX kot spletnega strežnika mora biti domena že na­sta­vlje­na in povezana z IP-naslovom strežnika. Preverite, ali je tudi DNS pravilno na­sta­vljen. V imeniku sites-available ustvarite novo kon­fi­gu­ra­cij­sko datoteko NGINX z na­sle­dnjim ukazom:

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

(Kot URL smo uporabili exampledomain.co.uk.)

Odpri kon­fi­gu­ra­cij­sko datoteko v ure­je­val­ni­ku besedil (npr. Vim) s pomočjo:

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

Vstavi blok kode iz poglavja »Nextcloud v po­di­me­ni­ku NGINX webroots« v do­ku­men­ta­ci­ji o kon­fi­gu­ra­ci­ji Nextcloud za NGINX.

Ker bo cer­ti­fi­kat HTTPS dodan s programom Certbot, iz kon­fi­gu­ra­cij­ske datoteke NGINX od­stra­ni­te vse vrstice, povezane s pro­to­ko­lom SSL. Certbot bo to opravil samodejno.

Kako nastaviti SSL-potrdilo s programom Certbot

Če želite Nextcloud upo­ra­blja­ti prek varne HTTPS-povezave, morate nastaviti SSL-potrdilo, v tem primeru od ponudnika Let’s Encrypt. Najprej nastavite požarni zid tako, da dovoli HTTPS- in SSH-povezave, in sicer z na­sle­dnji­mi ukazi sudo:

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

Nato vklopite požarni zid s sudo ufw enable in s sudo ufw status preverite, ali so povezave dovoljene. Nato lahko s pomočjo Certbota ustvarite SSL-potrdilo:

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

Sledite navodilom, da vnesete svoj e-poštni naslov za obnovo cer­ti­fi­ka­tov in sprejmete pogoje uporabe. Izberite možnost 2, da se vsa HTTP-zahtevka samodejno pre­u­sme­ri­jo na HTTPS. Certbot shrani datoteke s cer­ti­fi­ka­ti v mapo .etc/letsencrypt/live/exampledomain.co.uk/. Datoteka fullchain.pem vsebuje SSL-cer­ti­fi­kat, privkey.pem pa zasebni ključ. Ti ju morate dodati v kon­fi­gu­ra­cij­sko datoteko NGINX:

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

Ker je Certbot spremenil kon­fi­gu­ra­cij­sko datoteko, morate atribut ssl ponovno vstaviti med 443 in http2. Blok naj bi izgledal takole:

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

Kako ponovno zagnati storitve in dostopati do Ne­xt­clo­u­da

Da bi spremembe začele veljati, morate ponovno zagnati storitvi PHP-FPM in NGINX:

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

Sedaj odprite svojo domeno v br­skal­ni­ku – v našem primeru exam­ple­do­ma­in.co.uk. Če je vse pravilno na­sta­vlje­no, se bo prikazala uvodna stran Ne­xt­clo­u­da.

Note

Če se Nextcloud ne naloži, je morda razlog v tem, da vaša domena ni navedena kot zaupanja vredna domena v config.php. Dodajte jo tja, da odpravite težavo.

Go to Main Menu