Nextcloud darbība kopā ar NGINX nodrošina efektīvu sistēmas resursu iz­man­to­ša­nu un elastīgas iz­vie­to­ša­nas iespējas. Lai to pareizi uzstādītu, ir ne­pie­cie­ša­ma saderīga sistēmas vide un at­bil­sto­ša kon­fi­gu­rā­ci­ja. Lai no­dro­ši­nā­tu vien­mē­rī­gu in­teg­rā­ci­ju ar NGINX, ir ne­pie­cie­ša­mi arī daži konkrēti pie­lā­go­ju­mi.

Kas ir NGINX un kāpēc to lietot kopā ar Nextcloud?

NGINX ir atvērtā koda tīmekļa servera prog­ram­ma­tū­ra, kas var darboties arī kā ap­griez­tais star­pniek­ser­ve­ris, slodzes iz­lī­dzi­nā­tājs un HTTP kešatmiņa. Sākotnēji to iz­strā­dā­ja krievu prog­ram­ma­tū­ras in­že­nie­ris Igors Sisoevs, un NGINX tiek izplatīts saskaņā ar BSD licenci (BSD ir Unix variants).

NGINX ir iz­strā­dāts, lai vien­lai­kus ap­strā­dā­tu lielu skaitu sa­vie­no­ju­mu. Lai to panāktu, prog­ram­ma­tū­ra izmanto notikumu vadītu, ne­blo­kē­jo­šu ar­hi­tek­tū­ru. Atšķirībā no tra­di­cio­nā­la­jiem tīmekļa serveriem, kas katram sa­vie­no­ju­mam izveido jaunu procesu vai pavedienu, NGINX darbojas ar galveno procesu un vairākiem darba procesiem. Galvenais process apstrādā kon­fi­gu­rā­ci­ju, savukārt darba procesi apstrādā ienākošos klientu pie­pra­sī­ju­mus.

Nextcloud un NGINX ap­vie­no­ša­na nodrošina vairākas būtiskas priekš­ro­cī­bas augstas veikt­spē­jas vidēs, tostarp:

  • Efektīva resursu iz­man­to­ša­na: NGINX spēj vien­lai­kus apstrādāt vairākus sa­vie­no­ju­mus, patērējot minimālu resursu daudzumu.
  • Lieliska ska­lē­ja­mī­ba: NGINX atbalsta elastīgu slodzes iz­lī­dzi­nā­ša­nu un ir viegli skalējams, pie­vie­no­jot papildu serverus.
  • Ļoti pie­lā­go­ja­ma ar­hi­tek­tū­ra: pa­tei­co­ties mo­du­lā­ra­jai struk­tū­rai, NGINX var pielāgot dažādiem sce­nā­ri­jiem.
  • Uzticama veikt­spē­ja lielas servera slodzes apstākļos: pat tad, ja serveris tiek intensīvi izmantots, NGINX darbojas uzticami, no­dro­ši­not jūsu pa­kal­po­ju­mu ne­pār­trauk­tu pie­eja­mī­bu.
Note

Tā kā Nextcloud oficiāli atbalsta tikai Apache 2.x kā tīmekļa serveri, NGINX netiek oficiāli at­bal­stīts. Tāpēc Nextcloud darbība ar NGINX ir vis­pie­mē­ro­tā­kā lie­to­tā­jiem, kuriem ir pieredze tīmekļa serveru kon­fi­gu­rē­ša­nā.

Kādas ir prasības, lai darbinātu Nextcloud ar NGINX?

Lai darbinātu Nextcloud ar NGINX, jums būs ne­pie­cie­šams serveris, kurā darbojas Ubuntu, Debian vai cita saderīga ope­rē­tājsis­tē­ma. Serverim jābūt vismaz 4 GB RAM un diviem pro­ce­so­riem. Lielākām kon­fi­gu­rā­ci­jām ar vairākām Nextcloud lietotnēm ir stingri ieteicams izmantot lielāku atmiņas apjomu un vairāk procesoru kodolu. Jums būs ne­pie­cie­ša­ma arī pie­tie­ka­ma uz­gla­bā­ša­nas vieta datiem un dub­lē­ju­miem.

In­sta­lē­ša­nai būs ne­pie­cie­ša­ma arī saderīga datu bāze, piemēram, MySQL vai MariaDB, kā arī skriptu valoda PHP (vismaz versija 8.1, ieteicamā versija ir 8.3). Datu bāze tiek izmantota lietotāju un spraudņu datu, kā arī failu metadatu uz­gla­bā­ša­nai. PHP ir ne­pie­cie­šams, lai no­dro­ši­nā­tu Nextcloud pa­matfun­kci­ju darbību. Prog­ram­ma­tū­ras in­sta­lē­ša­nai būs ne­pie­cie­šams arī konts ar ad­mi­nis­tra­to­ra tiesībām.

Kā instalēt Nextcloud ar NGINX

Pirms Nextcloud in­sta­lē­ša­nas ir jāveic daži būtiski sa­ga­ta­vo­ša­nās darbi. Šajā ro­kas­grā­ma­tā tiek pieņemts, ka tiek izmantots Ubuntu serveris, kurā sistēma un visas ne­pie­cie­ša­mās atkarības jau ir in­sta­lē­tas. Tās ietver NGINX kā tīmekļa serveri, MySQL kā datu bāzi un PHP 8.3 ar visiem ne­pie­cie­ša­ma­jiem pa­pla­ši­nā­ju­miem.

Mēs esam in­sta­lē­ju­ši arī Certbot, lai at­vieg­lo­tu SSL ser­ti­fi­kā­ta kon­fi­gu­rē­ša­nu ar Let’s Encrypt. Mēs arī pieņemam, ka jums ir kon­fi­gu­rēts domēns, lai jūs varētu piekļūt Nextcloud, iz­man­to­jot URL, nevis IP adresi.

Kā le­ju­pie­lā­dēt un izpakot Nextcloud

Sāciet ar to, ka savā lietotāja di­rek­to­ri­jā iz­vei­do­jat mapi ar nosaukumu „nextcloud“, kurā glabāt in­sta­lā­ci­jas failus. Lai gan to var izdarīt manuāli, iz­man­to­jot Nextcloud izmaiņu žurnālu, ātrāk ir izmantot šādu Curl komandu:

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

Ja in­sta­lē­jat citu Nextcloud versiju, ne­aiz­mir­stiet at­bil­sto­ši at­jau­ni­nāt URL.

Tad iz­pa­kuo­jiet failu, pār­vie­to­jiet to uz tīmekļa saknes ./var/www un iestatiet faila atļaujas:

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

Kā izveidot datu bāzi

Lai kon­fi­gu­rē­tu MySQL datubāzi, izpildiet komandu „sudo“ ( sudo mysql_secure_installation. Ie­rak­stiet „y“, lai iestatītu galvenā lietotāja paroli (VALIDATE PASSWORD), un iz­vē­lie­ties „2“, lai izveidotu drošu paroli (STRONG), kuru pēc tam varēsiet iestatīt. No­spie­diet „y“, lai ap­stip­ri­nā­tu paroli, pēc tam atkārtoti no­spie­diet „y“, lai dzēstu anonīmos lie­to­tā­jus, atspēkotu attālo pie­teik­ša­nos, dzēstu testa datubāzi un pārlādētu pri­vi­lē­ģi­ju tabulas.

Tad rī­ko­jie­ties šādi:

  1. Pie­sa­kie­ties kā lietotājs „root“, iz­man­to­jot sudo mysql -u root -p.
  2. Iz­vei­do­jiet datubāzi, iz­man­to­jot: create database nextcloud;.
  3. Iz­vei­do­jiet lietotāju, iz­man­to­jot: create user 'nextcloud'@'localhost' identified by <new_password>;.
  4. Pie­šķi­riet atļaujas, iz­man­to­jot: grant all privileges on nextcloud.* to 'nextcloud'@'localhost';.
  5. Vis­bei­dzot, at­jau­ni­niet pri­vi­lē­ģi­jas, iz­man­to­jot flush privileges;, un izietiet no datu bāzes konsoles, iz­man­to­jot exit.

Kad datu bāze ir veiksmīgi izveidota, Nextcloud kon­fi­gu­rā­ci­jas failā ir jā­pie­vie­no piekļuves dati (DB_NAME, DB_USER, DB_PASSWORD). Atveriet failu ./var/www/nextcloud/config/config.php un pie­vie­no­jiet at­tie­cī­gos ierakstus:

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

Kā atspējot NGINX no­klu­sē­ju­ma kon­fi­gu­rā­ci­ju

Pirms Nextcloud in­teg­rē­ša­nas NGINX, ir jā­pār­lie­ci­nās, ka neviens cits kon­fi­gu­rā­ci­jas fails ne­pār­rak­sta Nextcloud in­sta­lā­ci­ju. Pēc no­klu­sē­ju­ma mapē ./etc/nginx/sites-enabled/ joprojām var atrasties kon­fi­gu­rā­ci­jas fails default, kas var traucēt kon­fi­gu­rā­ci­jas procesu. To var izdzēst, iz­man­to­jot:

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

Tad ak­ti­vi­zē­jiet savu pielāgoto kon­fi­gu­rā­ci­ju ar šo komandu:

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

Kā kon­fi­gu­rēt NGINX serveri

Lai kon­fi­gu­rē­tu NGINX kā tīmekļa serveri, domēnam jau jābūt ie­sta­tī­tam un saistītam ar servera IP adresi. Pār­lie­ci­nie­ties, ka arī DNS ir pareizi kon­fi­gu­rēts. Iz­vei­do­jiet jaunu NGINX kon­fi­gu­rā­ci­jas failu di­rek­to­ri­jā sites-available, iz­man­to­jot:

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

(Kā URL mēs iz­man­to­jām exampledomain.co.uk.)

Atveriet kon­fi­gu­rā­ci­jas failu teksta redaktorā (piemēram, Vim), iz­man­to­jot:

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

Ie­vie­to­jiet koda bloku no Nextcloud NGINX kon­fi­gu­rā­ci­jas do­ku­men­tā­ci­jas sadaļas „Nextcloud NGINX tīmekļa sakņu ap­akš­di­rek­to­ri­jā”.

Tā kā HTTPS ser­ti­fi­kāts tiks pie­vie­nots ar Certbot, izdzēsiet visas ar SSL saistītās rindas no NGINX kon­fi­gu­rā­ci­jas faila. Certbot par to pa­rū­pē­sies au­to­mā­tis­ki.

Kā kon­fi­gu­rēt SSL ser­ti­fi­kā­tu ar Certbot

Lai Nextcloud darbotos caur drošu HTTPS sa­vie­no­ju­mu, ir jāuzstāda SSL ser­ti­fi­kāts, šajā gadījumā no Let’s Encrypt. Vispirms kon­fi­gu­rē­jiet ugunsmūri, lai atļautu HTTPS un SSH sa­vie­no­ju­mus, iz­man­to­jot šādas sudo komandas:

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

Tālāk ak­ti­vi­zē­jiet ugunsmūri, iz­man­to­jot sudo ufw enable, un pār­bau­diet ar sudo ufw status, vai sa­vie­no­ju­mi ir atļauti. Pēc tam varat izveidot SSL ser­ti­fi­kā­tu, iz­man­to­jot Certbot:

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

Izpildiet no­rā­dī­ju­mus, lai norādītu savu e-pasta adresi ser­ti­fi­kā­ta at­jau­no­ša­nai un piekristu lie­to­ša­nas no­tei­ku­miem. Iz­vē­lie­ties 2. opciju, lai au­to­mā­tis­ki pā­r­ad­re­sē­tu visus HTTP pie­pra­sī­ju­mus uz HTTPS. Certbot saglabā ser­ti­fi­kā­ta failus di­rek­to­ri­jā .etc/letsencrypt/live/exampledomain.co.uk/. Failā fullchain.pem atrodas SSL ser­ti­fi­kāts, bet privkey.pem — privātais atslēgas. Tie ir jā­pie­vie­no jūsu NGINX kon­fi­gu­rā­ci­jas failam:

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

Tā kā Certbot ir iz­mai­nī­jis kon­fi­gu­rā­ci­jas failu, jums atkal jāievieto atribūts ssl starp 443 un http2. Bloks iz­ska­tī­sies šādi:

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

Kā pār­star­tēt pa­kal­po­ju­mus un piekļūt Nextcloud

Lai izmaiņas stātos spēkā, ir jā­pār­star­tē PHP-FPM un NGINX pa­kal­po­ju­mi:

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

Tagad atveriet savu domēnu pār­lūkprog­ram­mā – mūsu gadījumā tas ir example­do­main.co.uk. Ja viss ir kon­fi­gu­rēts pareizi, būtu jāparādās Nextcloud sākuma lapai.

Note

Ja Nextcloud netiek ielādēts, tas var būt saistīts ar to, ka jūsu domēns nav norādīts kā uzticams domēns config.php. sadaļā. Lai at­ri­si­nā­tu šo problēmu, pie­vie­no­jiet to tur.

Go to Main Menu