Nextc­loudi ka­su­ta­mine koos NGINXiga võimaldab süs­tee­mi­res­sursse tõhusalt ära kasutada ning pakub paind­likke ka­su­tus­või­ma­lusi. Selle õigeks sea­dis­ta­miseks on vaja ühilduvat süs­tee­mi­kesk­konda ja õiget kon­fi­gu­rat­siooni. NGINXiga sujuvaks in­teg­ree­ri­miseks on vaja teha ka mõned konk­reet­sed muu­da­tu­sed.

Mis on NGINX ja miks seda Nextc­lou­diga kom­bi­nee­rida?

NGINX on avatud läh­te­koo­dil põhinev vee­bi­ser­ve­ri­tark­vara, mida saab kasutada ka pöörd­prok­si­ser­ve­rina, koormuse jaotajana ja HTTP-va­he­mäluna. NGINX-i on algselt arendanud vene tark­vara­in­se­ner Igor Sysoev ning seda le­vi­ta­takse BSD-litsentsi alusel (BSD on Unixi variant).

NGINX on loodud selleks, et hallata sa­ma­aeg­selt suurt hulka ühendusi. Selleks kasutab tarkvara sünd­mu­se­põ­hist, blo­kee­ri­mata ar­hi­tek­tuuri. Erinevalt tra­dit­sioo­ni­lis­test vee­bi­ser­ve­ri­test, mis loovad iga ühenduse jaoks uue protsessi või niidi, töötab NGINX ühe pea­prot­sessi ja mitme töö­prot­sessi abil. Pea­prot­sess haldab kon­fi­gu­rat­siooni, samal ajal kui töö­prot­ses­sid töötlevad sis­se­tu­le­vaid klien­di­pä­rin­guid.

Nextc­loudi ja NGINXi ühen­da­mine pakub suure jõud­lu­sega kesk­kon­da­des mitmeid olulisi eeliseid, seal­hul­gas:

  • Res­surs­side tõhus ka­su­ta­mine: NGINX suudab hallata mitut ühendust korraga, kulutades selleks mi­ni­maal­selt ressursse.
  • Suu­re­pä­rane ska­lee­ri­ta­vus: NGINX toetab paind­likku koormuse jaotamist ja on kergesti ska­lee­ri­tav täien­da­vate serverite lisamise teel.
  • Hästi ko­han­da­tav ar­hi­tek­tuur: tänu oma mo­du­laarse struk­tuuri tõttu saab NGINX-i kohandada sobivaks paljude erinevate stse­naa­riumi­dega.
  • Usal­dus­väärne jõudlus suure ser­ve­ri­koor­muse korral: isegi kui server on suure koormuse all, on NGINX usal­dus­väärne ja hoiab teie teenused pidevalt kät­te­saa­da­vana.
Note

Kuna Nextcloud toetab amet­li­kult ainult Apache 2.x-i vee­bi­ser­ve­rina, puudub NGINX-ile ametlik tugi. Seetõttu sobib Nextc­loudi ka­su­ta­mine NGINX-iga kõige paremini ka­su­ta­ja­tele, kellel on kogemusi vee­bi­ser­ve­rite kon­fi­gu­ree­ri­misel.

Millised on Nextc­loudi ka­su­ta­miseks NGINXiga vajalikud nõuded?

Nextc­loudi käi­ta­miseks NGINX-i kesk­kon­nas on vaja serverit, millel töötab Ubuntu, Debian või mõni muu ühilduv ope­rat­sioo­ni­süs­teem. Serveril peaks olema vähemalt 4 GB RAM-mälu ja kaks prot­ses­so­rit. Suuremate süs­teemide puhul, kus on mitu Nextc­loudi rakendust, on tungivalt soo­vi­ta­tav kasutada rohkem mälu ja prot­ses­so­ri­tuume. Samuti on vaja piisavalt sal­ves­tus­ruumi andmete ja va­ru­koo­piate jaoks.

Pai­gal­da­miseks on vaja ka ühilduvat and­me­ba­asi, näiteks MySQL või MariaDB, ning skrip­ti­keelt PHP (mi­ni­maalne versioon 8.1, soo­vi­ta­tav versioon 8.3). And­me­ba­asi ka­su­ta­takse kasutaja- ja pis­tik­prog­rammide andmete ning failide me­ta­and­mete sal­ves­ta­miseks. PHP on vajalik Nextc­loudi põhiliste funkt­sioo­nide töö­ta­miseks. Tarkvara pai­gal­da­miseks on vaja ka ad­mi­nist­raa­to­ri­õi­gus­tega kontot.

Kuidas ins­tal­lida Nextcloud koos NGINXiga

Enne Nextc­loudi pai­gal­da­mist tuleb teha mõned olulised et­te­val­mis­tused. Käes­ole­vas juhendis eel­da­takse, et ka­su­ta­takse Ubuntu serverit, kus süsteem ja kõik vajalikud sõl­tu­vu­sed on juba paigas. Nende hulka kuuluvad vee­bi­ser­ve­rina NGINX, and­me­baasina MySQL ning PHP 8.3 koos kõigi vajalike laien­dus­tega.

Oleme pai­gal­da­nud ka Certbot’i, et hõl­bus­tada SSL-ser­ti­fi­kaadi sea­dis­ta­mist Let’s Encrypti abil. Eeldame ka, et teil on domeen sea­dis­ta­tud, nii et saate Nextc­lou­dile ligi pääseda URL-i kaudu, mitte IP-aadressi kaudu.

Kuidas Nextc­loudi alla laadida ja lahti pakkida

Alusta sellest, et lood oma ko­du­ka­ta­loogi kausta nimega „nextcloud“, kuhu paigutada ins­tal­li­fai­lid. Kuigi seda saab teha käsitsi Nextc­loudi muu­da­tuste loendi abil, on kiirem kasutada järgmist Curl-käsku:

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

Kui pai­gal­date mõnda teist Nextc­loudi versiooni, siis veenduge, et uuendate vastavalt ka URL-i.

Seejärel lae fail lahti, kopeeri see vee­bi­ka­ta­loogi ./var/www ja määra faili õigused:

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

Kuidas and­me­ba­asi sea­dis­tada

MySQL-and­me­ba­asi sea­dis­ta­miseks käivita sudo-käsk ( sudo mysql_secure_installation. Sisesta „y“, et määrata juur­ka­su­taja parool (VALIDATE PASSWORD), ja vali „2“, et luua tugev parool (STRONG), mille saad seejärel määrata. Vajuta „y“, et parooli kinnitada, ning seejärel vajuta uuesti „y“, et eemaldada ano­nüüm­sed kasutajad, keelata kaug­juur­de­pääs, eemaldada tes­tand­me­baas ja laadida õi­gus­ta­belid uuesti.

Järgige seejärel neid samme:

  1. Logi sisse juur­ka­su­ta­jana, kasutades sudo mysql -u root -p.
  2. Loo andmebaas järg­mi­selt: create database nextcloud;.
  3. Loo kasutaja järg­mi­selt: create user 'nextcloud'@'localhost' identified by <new_password>;.
  4. Andke õigused järg­mi­selt: grant all privileges on nextcloud.* to 'nextcloud'@'localhost';.
  5. Lõpuks uuendage õigusi, kasutades flush privileges;, ja väljuge and­me­ba­asi kon­soolist, kasutades exit.

Kui andmebaas on edukalt sea­dis­ta­tud, tuleb lisada ka­su­ta­ja­tun­nu­sed (DB_NAME, DB_USER, DB_PASSWORD) Nextc­loudi kon­fi­gu­rat­sioo­ni­faili. Avage fail ./var/www/nextcloud/config/config.php ja lisage vajalikud kanded:

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

Kuidas keelata NGINXi vaikimisi kon­fi­gu­rat­sioon

Enne Nextc­loudi in­teg­ree­ri­mist NGINX-iga tuleb veenduda, et ükski teine kon­fi­gu­rat­sioo­ni­fail ei kirjutaks Nextc­loudi ins­tal­lat­siooni üle. Vaikimisi võib ka­ta­loo­gis default endiselt olla kon­fi­gu­rat­sioo­ni­fail ./etc/nginx/sites-enabled/, mis võib teie sea­dis­ta­mist segada. Kustutage see järgmise käsuga:

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

Seejärel aktiveeri oma ko­han­da­tud kon­fi­gu­rat­sioon järgmise käsuga:

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

Kuidas sea­dis­tada NGINX-serverit

NGINX-i vee­bi­ser­ve­rina sea­dis­ta­miseks peab domeen olema juba loodud ja serveri IP-aad­res­siga seotud. Veenduge, et ka DNS on õigesti sea­dis­ta­tud. Looge ka­ta­loo­gis sites-available uus NGINX-i kon­fi­gu­rat­sioo­ni­fail järgmise käsu abil:

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

(Ka­su­ta­sime URL-ina numbrit exampledomain.co.uk.)

Ava kon­fi­gu­rat­sioo­ni­fail teks­ti­re­dak­to­ris (näiteks Vim) järgmise käsuga:

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

Lisage koo­dib­lokk Nextc­loudi NGINX-i kon­fi­gu­rat­siooni juhendi jaotisest „Nextcloud NGINX-i vee­bi­ka­ta­loogi alam­ka­ta­loo­gis”.

Kuna HTTPS-ser­ti­fi­kaat lisatakse Cert­bo­tiga, eemalda NGINX-i kon­fi­gu­rat­sioo­ni­fai­list kõik SSL-iga seotud read. Certbot tegeleb nendega au­to­maat­selt.

Kuidas sea­dis­tada SSL-ser­ti­fi­kaat Cert­bo­tiga

Nextc­loudi turvalise HTTPS-ühenduse kaudu käi­vi­ta­miseks tuleb sea­dis­tada SSL-ser­ti­fi­kaat, antud juhul Let’s Encrypti ser­ti­fi­kaat. Esmalt sea­dis­tage tulemüür nii, et see lubaks HTTPS- ja SSH-ühendusi, kasutades järgmisi sudo-käsklusi:

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

Seejärel ak­ti­vee­rige tulemüür ( sudo ufw enable ) ja kont­rol­lige ( sudo ufw status ), et ühendused oleksid lubatud. Seejärel saate luua SSL-ser­ti­fi­kaadi Cert­bo­tiga:

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

Järgige juhiseid, et sisestada ser­ti­fi­kaadi uuen­da­miseks oma e-posti aadress ja nõustuda ka­su­tus­tin­gi­mus­tega. Valige valik 2, et suunata kõik HTTP-päringud au­to­maat­selt HTTPS-i. Certbot salvestab ser­ti­fi­kaa­di­fai­lid kataloogi .etc/letsencrypt/live/exampledomain.co.uk/. Fail fullchain.pem sisaldab SSL-ser­ti­fi­kaati ja privkey.pem sisaldab pri­vaat­set võtit. Need tuleb lisada oma NGINX-i kon­fi­gu­rat­sioo­ni­faili:

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

Kuna Certbot muutis kon­fi­gu­rat­sioo­ni­faili, peate lisama atribuudi ssl uuesti kohta­desse 443 ja http2 vahele. Plokk peaks välja nägema järgmine:

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

Kuidas teenuseid taas­käi­vi­tada ja Nextc­lou­dile juurde pääseda

Et muu­da­tu­sed jõus­tuk­sid, tuleb teenused PHP-FPM ja NGINX uuesti käivitada:

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

Avage nüüd oma domeen vee­bib­rau­se­ris – meie näite puhul on see examp­le­do­main.co.uk. Kui kõik on õigesti sea­dis­ta­tud, peaks ilmuma Nextc­loudi ter­vi­tus­leht.

Note

Kui Nextcloud ei lae, võib põhjuseks olla see, et teie domeen ei ole loetletud usal­dus­väär­sete domeenide ni­me­kir­jas punktis config.php. Lisage see sinna, et probleem lahendada.

Go to Main Menu