„Nextcloud“ veikimas su „NGINX“ leidžia efek­ty­viai naudoti sistemos išteklius ir suteikia lanksčias diegimo galimybes. Norint viską tinkamai su­kon­fi­gū­ruo­ti, reikės su­de­ri­na­mos sistemos aplinkos ir tinkamų nustatymų. Be to, siekiant už­tik­rin­ti sklandžią in­te­g­ra­ci­ją su „NGINX“, reikės atlikti keletą konkrečių ko­re­ga­vi­mų.

Kas yra NGINX ir kodėl jį verta derinti su „Nextcloud“?

„NGINX“ – tai atvirojo kodo ži­nia­tink­lio serverio prog­ra­mi­nė įranga, kuri taip pat gali veikti kaip at­virkš­ti­nis tarpinis serveris, apkrovos pa­skirs­ty­mo įrenginys ir HTTP talpyklė. Iš pradžių „NGINX“ sukūrė rusų prog­ra­mi­nės įrangos in­ži­nie­rius Igoris Sysojevas, o platinama pagal BSD licenciją (BSD yra „Unix“ variantas).

NGINX yra sukurtas tam, kad vienu metu galėtų ap­tar­nau­ti didelį skaičių ryšių. Šiam tikslui pasiekti prog­ra­mi­nė įranga naudoja įvykių valdomą, ne­blo­kuo­jan­čią ar­chi­tek­tū­rą. Skir­tin­gai nuo tra­di­ci­nių ži­nia­tink­lio serverių, kurie kiek­vie­nam ryšiui sukuria naują procesą ar srautą, NGINX veikia taip: pag­rin­di­nis procesas veikia kartu su keliais pa­gal­bi­niais procesais. Pag­rin­di­nis procesas tvarko kon­fi­gū­ra­ci­ją, o pa­gal­bi­niai procesai apdoroja gaunamus klientų už­klau­si­mus.

„Nextcloud“ ir „NGINX“ derinys suteikia keletą pag­rin­di­nių privalumų aukštos našumo aplinkoms, tarp kurių:

  • Efektyvus išteklių nau­do­ji­mas: „NGINX“ gali vienu metu tvarkyti daugybę ryšių, su­nau­do­da­mas tik mi­ni­ma­lius išteklius.
  • Puikus mastelio keitimas: NGINX palaiko lanksčią apkrovos ba­lan­sa­vi­mą ir yra lengvai pri­tai­ko­mas, pridedant pa­pil­do­mus serverius.
  • Labai pri­tai­ko­ma ar­chi­tek­tū­ra: Dėl savo modulinės struk­tū­ros NGINX gali būti pri­tai­ky­tas įvairiems sce­na­ri­jams.
  • Patikimas veikimas esant didelei serverio apkrovai: net ir esant didelei serverio apkrovai, NGINX veikia patikimai, už­tik­rin­da­mas nuolatinį jūsų paslaugų pri­ei­na­mu­mą.
Note

Kadangi „Nextcloud“ ofi­cia­liai palaiko tik „Apache 2.x“ kaip savo ži­nia­tink­lio serverį, „NGINX“ ofi­cia­liai ne­pa­lai­ko­ma. Todėl „Nextcloud“ veikimas su „NGINX“ la­biau­siai tinka var­to­to­jams, tu­rin­tiems patirties kon­fi­gū­ruo­jant ži­nia­tink­lio serverius.

Kokie rei­ka­la­vi­mai keliami „Nextcloud“ veikimui su „NGINX“?

Norėdami paleisti „Nextcloud“ su „NGINX“, jums reikės serverio, kuriame veikia „Ubuntu“, „Debian“ ar kita su­de­ri­na­ma operacinė sistema. Serveris turėtų turėti ne mažiau kaip 4 GB RAM ir du pro­ce­so­rius. Didesnėms sistemoms su keliomis „Nextcloud“ prog­ra­mo­mis labai re­ko­men­duo­ja­ma daugiau atminties ir pro­ce­so­rių bran­duo­lių. Taip pat reikės pa­kan­ka­mai vietos duomenims ir at­sar­gi­nėms kopijoms saugoti.

Diegimui taip pat reikės su­de­ri­na­mos duomenų bazės, pa­vyz­džiui, „MySQL“ ar „MariaDB“, bei skriptų kalbos PHP (rei­ka­lin­ga ne žemesnė kaip 8.1 versija, re­ko­men­duo­ja­ma 8.3 versija). Duomenų bazė naudojama vartotojų ir įskiepių duomenims, taip pat failų me­ta­duo­me­nims saugoti. PHP rei­ka­lin­ga „Nextcloud“ pag­rin­di­nėms funk­ci­joms vykdyti. Be to, norint įdiegti prog­ra­mi­nę įrangą, reikės paskyros su ad­mi­nist­ra­to­riaus teisėmis.

Kaip įdiegti „Nextcloud“ su „NGINX“

Prieš diegiant „Nextcloud“ reikia atlikti keletą būtinų pa­ruo­šia­mų­jų veiksmų. Šiame vadove daroma prielaida, kad nau­do­ja­mas „Ubuntu“ serveris, kuriame jau įdiegta sistema ir visos reikiamos pri­klau­so­my­bės. Tai apima „NGINX“ kaip ži­nia­tink­lio serverį, „MySQL“ kaip duomenų bazę ir „PHP 8.3“ su visais būtinais plė­ti­niais.

Be to, įdiegėme „Certbot“, kad būtų galima lengvai nustatyti SSL ser­ti­fi­ka­tą naudojant „Let’s Encrypt“. Taip pat manome, kad turite su­kon­fi­gū­ruo­tą domeną, todėl prie „Nextcloud“ galite pri­si­jung­ti naudodami URL adresą, o ne IP adresą.

Kaip at­si­siųs­ti ir išpakuoti „Nextcloud“

Pir­miau­sia savo namų kataloge sukurkite aplanką „nextcloud“, kuriame bus saugomi diegimo failai. Nors tai galima padaryti rankiniu būdu, va­do­vau­jan­tis „Nextcloud“ pakeitimų žurnalu, greičiau tai atlikti naudojant šią „Curl“ komandą:

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

Jei diegiate kitą „Nextcloud“ versiją, būtinai ati­tin­ka­mai at­nau­jin­ki­te URL adresą.

Tada iš­pa­kuo­ki­te failą, per­kel­ki­te jį į tink­la­la­pio šakninį katalogą ./var/www ir nu­sta­ty­ki­te failo teises:

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

Kaip su­kon­fi­gū­ruo­ti duomenų bazę

Norėdami su­kon­fi­gū­ruo­ti „MySQL“ duomenų bazę, pa­lei­s­ki­te komandą „sudo“ ( sudo mysql_secure_installation. Įveskite „y“, kad nu­sta­ty­tu­mė­te ad­mi­nist­ra­to­riaus slap­ta­žo­dį (VALIDATE PASSWORD), ir pa­si­rin­ki­te „2“, kad nu­sta­ty­tu­mė­te saugų slap­ta­žo­dį (STRONG), kurį galėsite su­kon­fi­gū­ruo­ti vėliau. Pa­spau­s­ki­te „y“, kad pa­tvir­tin­tu­mė­te slap­ta­žo­dį, tada dar kartą pa­spau­s­ki­te „y“, kad pa­ša­lin­tu­mė­te ano­ni­mi­nius var­to­to­jus, iš­jung­tu­mė­te nuotolinį pri­si­jun­gi­mą, pa­ša­lin­tu­mė­te bandomąją duomenų bazę ir per­krau­tu­mė­te teisių lenteles.

Tada atlikite šiuos veiksmus:

  1. Pri­si­jun­ki­te kaip var­to­to­jas „root“ naudodami sudo mysql -u root -p.
  2. Sukurkite duomenų bazę naudodami: create database nextcloud;.
  3. Sukurkite vartotoją naudodami: create user 'nextcloud'@'localhost' identified by <new_password>;.
  4. Suteikite leidimus naudodami: grant all privileges on nextcloud.* to 'nextcloud'@'localhost';.
  5. Ga­liau­siai at­nau­jin­ki­te teises naudodami flush privileges; ir išeikite iš duomenų bazės konsolės naudodami exit.

Sėkmingai su­kon­fi­gū­ra­vus duomenų bazę, reikia įtraukti pri­si­jun­gi­mo duomenis (DB_NAME, DB_USER, DB_PASSWORD) į „Nextcloud“ kon­fi­gū­ra­ci­jos failą. Ati­da­ry­ki­te failą ./var/www/nextcloud/config/config.php ir įtraukite reikiamus įrašus:

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

Kaip išjungti nu­ma­ty­tą­ją NGINX kon­fi­gū­ra­ci­ją

Prieš in­te­gruo­da­mi „Nextcloud“ į „NGINX“, turite įsi­ti­kin­ti, kad jokie kiti kon­fi­gū­ra­ci­jos failai ne­pa­kei­čia „Nextcloud“ diegimo nustatymų. Pagal nu­ma­ty­tuo­sius nu­sta­ty­mus kataloge default vis dar gali būti kon­fi­gū­ra­ci­jos failas ./etc/nginx/sites-enabled/, kuris gali trukdyti jūsų diegimui. Pa­ša­lin­ki­te jį taip:

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

Tada įjunkite savo pa­si­rink­tą kon­fi­gū­ra­ci­ją šia komanda:

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

Kaip su­kon­fi­gū­ruo­ti NGINX serverį

Norint su­kon­fi­gū­ruo­ti NGINX kaip ži­nia­tink­lio serverį, domenas jau turi būti su­kon­fi­gū­ruo­tas ir susietas su serverio IP adresu. Įsi­ti­kin­ki­te, kad DNS taip pat yra teisingai su­kon­fi­gū­ruo­tas. Sukurkite naują NGINX kon­fi­gū­ra­ci­jos failą kataloge sites-available naudodami šią komandą:

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

(URL adrese naudojome exampledomain.co.uk.)

Ati­da­ry­ki­te kon­fi­gū­ra­ci­jos failą teksto re­dak­to­riu­je (pa­vyz­džiui, „Vim“) taip:

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

Įterpkite kodų bloką iš Nextcloud NGINX kon­fi­gū­ra­ci­jos do­ku­men­ta­ci­jos skyriaus „Nextcloud NGINX webroots pa­ka­ta­lo­gy­je“.

Kadangi HTTPS ser­ti­fi­ka­tas bus įdiegtas naudojant „Certbot“, iš NGINX kon­fi­gū­ra­ci­jos failo iš­trin­ki­te visas eilutes, su­si­ju­sias su SSL. „Certbot“ tai atliks au­to­ma­tiš­kai.

Kaip nustatyti SSL ser­ti­fi­ka­tą naudojant „Certbot“

Norėdami paleisti „Nextcloud“ per saugų HTTPS ryšį, turite nustatyti SSL ser­ti­fi­ka­tą, šiuo atveju iš „Let’s Encrypt“. Pir­miau­sia su­kon­fi­gū­ruo­ki­te ug­nia­sie­nę taip, kad ji leistų HTTPS ir SSH ryšius, naudodami šias „sudo“ komandas:

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

Toliau įjunkite ug­nia­sie­nę, nu­sta­ty­da­mi vertę sudo ufw enable, ir pa­tik­rin­ki­te, nu­sta­ty­da­mi vertę sudo ufw status, ar ryšiai leidžiami. Tada galite sukurti SSL ser­ti­fi­ka­tą naudodami „Certbot“:

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

Va­do­vau­ki­tės ekrane pa­tei­kia­mais nu­ro­dy­mais, kad nu­ro­dy­tu­mė­te savo el. pašto adresą ser­ti­fi­ka­to at­nau­ji­ni­mui ir su­tik­tu­mė­te su paslaugų teikimo sąlygomis. Pa­si­rin­ki­te 2 variantą, kad visi HTTP už­klau­si­mai būtų au­to­ma­tiš­kai nu­krei­pia­mi į HTTPS. „Certbot“ išsaugo ser­ti­fi­ka­to failus kataloge .etc/letsencrypt/live/exampledomain.co.uk/. Failas fullchain.pem yra SSL ser­ti­fi­ka­tas, o privkey.pem – privatus raktas. Juos reikia įtraukti į savo NGINX kon­fi­gū­ra­ci­jos failą:

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

Kadangi „Certbot“ pakeitė kon­fi­gū­ra­ci­jos failą, tarp 443 ir http2 vėl reikia įterpti ssl atributą. Blokas turėtų atrodyti taip:

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

Kaip iš naujo paleisti paslaugas ir pri­si­jung­ti prie „Nextcloud“

Kad pa­kei­ti­mai įsi­ga­lio­tų, reikia perkrauti PHP-FPM ir NGINX paslaugas:

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

Dabar nar­šyk­lė­je ati­da­ry­ki­te savo domeną – mūsų atveju tai examp­le­do­main.co.uk. Jei viskas buvo su­kon­fi­gū­ruo­ta teisingai, turėtų pa­si­ro­dy­ti „Nextcloud“ svei­ki­ni­mo puslapis.

Note

Jei „Nextcloud“ ne­at­si­siun­čia, tai gali būti dėl to, kad jūsų domenas nėra įtrauktas į „Patikimų domenų“ sąrašą config.php skyriuje. Norėdami išspręsti šią problemą, įtraukite jį į tą sąrašą.

Go to Main Menu