Nextclou­din käyttö NGINX:n kanssa mah­dol­lis­taa jär­jes­tel­mä­re­surs­sien tehokkaan hyö­dyn­tä­mi­sen sekä joustavat käyt­töön­ot­to­vaih­toeh­dot. Jär­jes­tel­män asian­mu­kai­nen asennus edel­lyt­tää yh­teen­so­pi­vaa jär­jes­tel­mäym­pä­ris­töä ja oikeita asetuksia. NGINX:n kanssa sujuvaan in­tegroin­tiin tarvitaan myös muutamia erityisiä säätöjä.

Mikä on NGINX ja miksi sitä kannattaa käyttää yhdessä Nextclou­din kanssa?

NGINX on avoimen läh­de­koo­din verk­ko­pal­ve­li­noh­jel­mis­to, jota voidaan käyttää myös kään­teis­vä­li­tys­pal­ve­li­me­na, kuor­mi­tuk­sen ta­sa­pai­not­ta­ja­na ja HTTP-vä­li­muis­ti­na. Alun perin ve­nä­läi­sen oh­jel­mis­to­suun­nit­te­li­jan Igor Sysoevin kehittämä NGINX jaetaan BSD-li­sens­sil­lä (BSD on Unix-variantti).

NGINX on suun­ni­tel­tu kä­sit­te­le­mään suurta määrää yhteyksiä sa­ma­nai­kai­ses­ti. Tätä varten oh­jel­mis­to käyttää ta­pah­tu­ma­poh­jais­ta, ei-estävää ark­ki­teh­tuu­ria. Toisin kuin pe­rin­tei­set verk­ko­pal­ve­li­met, jotka luovat uuden prosessin tai säikeen jo­kai­sel­le yh­tey­del­le, NGINX käyttää pääpro­ses­sia sekä useita työpro­ses­se­ja. Pääpro­ses­si huolehtii ase­tuk­sis­ta, kun taas työpro­ses­sit kä­sit­te­le­vät saapuvia asia­kas­pyyn­tö­jä.

Nextclou­din ja NGINX:n yh­dis­tä­mi­sel­lä on useita mer­kit­tä­viä etuja suo­ri­tus­ky­kyä vaa­ti­vis­sa ym­pä­ris­töis­sä, kuten:

  • Tehokas re­surs­sien käyttö: NGINX pystyy kä­sit­te­le­mään useita yhteyksiä sa­ma­nai­kai­ses­ti ku­lut­ta­mal­la re­surs­se­ja mah­dol­li­sim­man vähän.
  • Erin­omai­nen skaa­lau­tu­vuus: NGINX tukee joustavaa kuor­mi­tuk­sen ta­sa­pai­not­ta­mis­ta ja on helposti skaa­lau­tu­va li­sää­mäl­lä uusia pal­ve­li­mia.
  • Erittäin muo­kat­ta­va ark­ki­teh­tuu­ri: Mo­du­laa­ri­sen ra­ken­teen­sa ansiosta NGINX voidaan mukauttaa mo­nen­lai­siin ti­lan­tei­siin.
  • Luo­tet­ta­va suo­ri­tus­ky­ky raskaassa pal­ve­lin­kuor­mi­tuk­ses­sa: NGINX on luo­tet­ta­va myös pal­ve­li­men ollessa kovassa käytössä ja pitää palvelusi jat­ku­vas­ti käy­tet­tä­vis­sä.
Huomio

Koska Nextcloud tukee vi­ral­li­ses­ti vain Apache 2.x:ää verk­ko­pal­ve­li­me­naan, NGINX:lle ei ole vi­ral­lis­ta tukea. Nextclou­din käyttö NGINX:n kanssa sopii siksi parhaiten käyt­tä­jil­le, joilla on kokemusta verk­ko­pal­ve­li­mien kon­fi­gu­roin­nis­ta.

Mitkä ovat Nextclou­din käyt­tä­mi­sen vaa­ti­muk­set NGINX:n kanssa?

Nextclou­din käyt­tä­mi­sek­si NGINX-pal­ve­li­mel­la tarvitset pal­ve­li­men, jossa on Ubuntu, Debian tai jokin muu yh­teen­so­pi­va käyt­tö­jär­jes­tel­mä. Pal­ve­li­mes­sa tulisi olla vähintään 4 Gt RAM-muistia ja kaksi pro­ses­so­ria. Suu­rem­mis­sa ko­koon­pa­nois­sa, joissa on useita Nextcloud-so­vel­luk­sia, suo­si­tel­laan eh­dot­to­mas­ti enemmän muistia ja pro­ses­so­riy­ti­miä. Tarvitset myös riit­tä­väs­ti tal­len­nus­ti­laa tiedoille ja var­muus­ko­pioil­le.

Asennusta varten tarvitset myös yh­teen­so­pi­van tie­to­kan­nan, kuten MySQL:n tai MariaDB:n, sekä PHP-sk­rip­ti­kie­len (vä­him­mäis­ver­sio 8.1, suo­si­tel­laan versiota 8.3). Tie­to­kan­taa käytetään käyttäjä- ja laa­jen­nus­tie­to­jen sekä tie­dos­to­jen me­ta­tie­to­jen tal­len­ta­mi­seen. PHP:tä tarvitaan Nextclou­din ydin­toi­min­to­jen suo­rit­ta­mi­seen. Oh­jel­mis­ton asen­ta­mi­seen tarvitset myös tilin, jolla on jär­jes­tel­män­val­vo­jan oikeudet.

Nextclou­din asen­ta­mi­nen NGINX:n avulla

Ennen Nextclou­din asen­ta­mis­ta on suo­ri­tet­ta­va joitakin vält­tä­mät­tö­miä val­mis­te­lu­toi­mia. Tässä oppaassa oletetaan, että käytössä on Ubuntu-palvelin, jossa jär­jes­tel­mä ja kaikki tar­vit­ta­vat riip­pu­vuu­det ovat jo asen­net­tui­na. Näitä ovat NGINX-verk­ko­pal­ve­lin, MySQL-tie­to­kan­ta sekä PHP 8.3 kaikkine tar­vit­ta­vi­ne laa­jen­nuk­si­neen.

Olemme asen­ta­neet myös Certbotin, jotta SSL-var­men­teen asennus Let’s Encryptin avulla sujuu helposti. Oletamme myös, että sinulla on verk­ko­tun­nus mää­ri­tet­ty­nä, jotta voit käyttää Nextclou­dia URL-osoitteen kautta IP-osoitteen sijaan.

Kuinka ladata ja purkaa Nextcloud

Aloita luomalla ko­ti­ha­ke­mis­too­si kansio nimeltä ”nextcloud” asen­nus­tie­dos­to­jen tal­len­ta­mis­ta varten. Vaikka tämän voi tehdä ma­nu­aa­li­ses­ti Nextclou­din muu­tos­päi­vä­kir­jan ohjeiden mukaan, on nopeampaa käyttää seuraavaa curl-komentoa:

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

Jos asennat eri version Nextclou­dis­ta, muista päivittää URL-osoite vas­taa­vas­ti.

Pura sitten tiedosto, siirrä se verk­ko­kan­sion ./var/www ja määritä tiedoston käyt­tö­oi­keu­det:

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

Tie­to­kan­nan mää­rit­tä­mi­nen

Määritä MySQL-tie­to­kan­ta suo­rit­ta­mal­la sudo-komento ( sudo mysql_secure_installation. Kirjoita ”y” pää­käyt­tä­jän salasanan mää­rit­tä­mi­sek­si (VALIDATE PASSWORD) ja valitse ”2” vahvan salasanan luo­mi­sek­si (STRONG), jonka voit sitten määrittää. Vahvista salasana pai­na­mal­la ”y” ja paina sitten uudelleen ”y” pois­taak­se­si ni­met­tö­mät käyttäjät, es­tääk­se­si etäkäytön, pois­taak­se­si tes­ti­tie­to­kan­nan ja la­da­tak­se­si käyt­tö­oi­keus­tau­lu­kot uudelleen.

Toimi sitten seu­raa­vas­ti:

  1. Kirjaudu sisään pää­käyt­tä­jä­nä käyt­tä­mäl­lä sudo mysql -u root -p.
  2. Luo tie­to­kan­ta seu­raa­vas­ti: create database nextcloud;.
  3. Luo käyttäjä seu­raa­vas­ti: create user 'nextcloud'@'localhost' identified by <new_password>;.
  4. Myönnä käyt­tö­oi­keu­det ko­men­nol­la: grant all privileges on nextcloud.* to 'nextcloud'@'localhost';.
  5. Lopuksi päivitä oikeudet käyt­tä­mäl­lä flush privileges; ja poistu tie­to­kan­ta­kon­so­lis­ta käyt­tä­mäl­lä exit.

Kun tie­to­kan­ta on mää­ri­tet­ty on­nis­tu­nees­ti, sinun on lisättävä kir­jau­tu­mis­tie­dot (DB_NAME, DB_USER, DB_PASSWORD) Nextclou­din ase­tus­tie­dos­toon. Avaa tiedosto ./var/www/nextcloud/config/config.php ja lisää tar­vit­ta­vat tiedot:

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

Kuinka poistaa NGINX:n ole­tus­a­se­tuk­set käytöstä

Ennen kuin integroit Nextclou­din NGINX:ään, sinun on var­mis­tet­ta­va, ettei mikään muu ase­tus­tie­dos­to ohita Nextcloud-asennusta. Ole­tus­a­se­tuk­si­na kansiossa ./etc/nginx/sites-enabled/ saattaa edelleen olla ase­tus­tie­dos­to default, joka voi häiritä asen­nus­ta­si. Poista se seu­raa­vas­ti:

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

Ota sitten mu­kau­tet­tu ko­koon­pa­no­si käyttöön tällä ko­men­nol­la:

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

NGINX-pal­ve­li­men mää­rit­tä­mi­nen

Jotta NGINX voidaan määrittää verk­ko­pal­ve­li­mek­si, verk­ko­tun­nuk­sen tulee olla jo mää­ri­tet­ty ja liitetty pal­ve­li­men IP-osoit­tee­seen. Varmista, että myös DNS on mää­ri­tet­ty oikein. Luo uusi NGINX-mää­ri­tys­tie­dos­to ha­ke­mis­toon sites-available seu­raa­vas­ti:

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

(Käytimme URL-osoit­tee­na exampledomain.co.uk.)

Avaa ase­tus­tie­dos­to teks­tie­di­to­ris­sa (kuten Vim) seu­raa­vas­ti:

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

Lisää koo­di­loh­ko Nextclou­din NGINX-mää­ri­tys­oh­jei­den kohdasta ”Nextcloud NGINX-webroots-ha­ke­mis­ton ali­ha­ke­mis­tos­sa”.

Koska HTTPS-varmenne lisätään Certbotin avulla, poista kaikki SSL:ään liittyvät rivit NGINX-mää­ri­tys­tie­dos­tos­ta. Certbot hoitaa nämä au­to­maat­ti­ses­ti.

SSL-var­men­teen asen­ta­mi­nen Cert­bo­til­la

Jotta Nextclou­dia voidaan käyttää suojatun HTTPS-yhteyden kautta, sinun on asen­net­ta­va SSL-varmenne, tässä ta­pauk­ses­sa Let’s Encryptin varmenne. Aloita mää­rit­tä­mäl­lä palomuuri sallimaan HTTPS- ja SSH-yhteydet seu­raa­vien sudo-ko­men­to­jen avulla:

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

Ota seu­raa­vak­si palomuuri käyttöön kohdassa sudo ufw enable ja varmista kohdassa sudo ufw status, että yhteydet on sallittu. Sen jälkeen voit luoda SSL-var­men­teen Certbot-oh­jel­mal­la:

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

Seuraa ohjeita ja anna säh­kö­pos­tio­soit­tee­si var­men­teen uusimista varten sekä hyväksy käyt­tö­eh­dot. Valitse vaih­toeh­to 2, jotta kaikki HTTP-pyynnöt ohjataan au­to­maat­ti­ses­ti HTTPS-pro­to­kol­lal­le. Certbot tallentaa var­men­ne­tie­dos­tot ha­ke­mis­toon .etc/letsencrypt/live/exampledomain.co.uk/. Tiedosto fullchain.pem sisältää SSL-var­men­teen ja privkey.pem sisältää salaisen avaimen. Sinun on lisättävä ne NGINX-mää­ri­tys­tie­dos­toon:

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

Koska Certbot on muokannut ase­tus­tie­dos­toa, sinun on lisättävä att­ri­buut­ti ssl uudelleen 443 ja http2 väliin. Lohkon tulisi näyttää tältä:

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

Kuinka käyn­nis­tää palvelut uudelleen ja kirjautua Nextclou­diin

Jotta muutokset tulisivat voimaan, sinun on käyn­nis­tet­tä­vä PHP-FPM- ja NGINX-palvelut uudelleen:

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

Avaa nyt verk­ko­tun­nuk­se­si se­lai­mes­sa – tässä ta­pauk­ses­sa example­do­main.co.uk. Jos kaikki on mää­ri­tet­ty oikein, Nextclou­din aloi­tus­si­vu pitäisi avautua.

Huomio

Jos Nextcloud ei lataudu, syynä voi olla se, että verk­ko­tun­nus­ta­si ei ole merkitty luo­tet­ta­vak­si verk­ko­tun­nuk­sek­si kohdassa config.php. Lisää se sinne ongelman rat­kai­se­mi­sek­si.

Siirry pää­va­lik­koon