Kā instalēt un konfigurēt Nextcloud ar NGINX
Nextcloud darbība kopā ar NGINX nodrošina efektīvu sistēmas resursu izmantošanu un elastīgas izvietošanas iespējas. Lai to pareizi uzstādītu, ir nepieciešama saderīga sistēmas vide un atbilstoša konfigurācija. Lai nodrošinātu vienmērīgu integrāciju ar NGINX, ir nepieciešami arī daži konkrēti pielāgojumi.
Kas ir NGINX un kāpēc to lietot kopā ar Nextcloud?
NGINX ir atvērtā koda tīmekļa servera programmatūra, kas var darboties arī kā apgrieztais starpniekserveris, slodzes izlīdzinātājs un HTTP kešatmiņa. Sākotnēji to izstrādāja krievu programmatūras inženieris Igors Sisoevs, un NGINX tiek izplatīts saskaņā ar BSD licenci (BSD ir Unix variants).
NGINX ir izstrādāts, lai vienlaikus apstrādātu lielu skaitu savienojumu. Lai to panāktu, programmatūra izmanto notikumu vadītu, neblokējošu arhitektūru. Atšķirībā no tradicionālajiem tīmekļa serveriem, kas katram savienojumam izveido jaunu procesu vai pavedienu, NGINX darbojas ar galveno procesu un vairākiem darba procesiem. Galvenais process apstrādā konfigurāciju, savukārt darba procesi apstrādā ienākošos klientu pieprasījumus.
Nextcloud un NGINX apvienošana nodrošina vairākas būtiskas priekšrocības augstas veiktspējas vidēs, tostarp:
- Efektīva resursu izmantošana: NGINX spēj vienlaikus apstrādāt vairākus savienojumus, patērējot minimālu resursu daudzumu.
- Lieliska skalējamība: NGINX atbalsta elastīgu slodzes izlīdzināšanu un ir viegli skalējams, pievienojot papildu serverus.
- Ļoti pielāgojama arhitektūra: pateicoties modulārajai struktūrai, NGINX var pielāgot dažādiem scenārijiem.
- Uzticama veiktspēja lielas servera slodzes apstākļos: pat tad, ja serveris tiek intensīvi izmantots, NGINX darbojas uzticami, nodrošinot jūsu pakalpojumu nepārtrauktu pieejamību.
Tā kā Nextcloud oficiāli atbalsta tikai Apache 2.x kā tīmekļa serveri, NGINX netiek oficiāli atbalstīts. Tāpēc Nextcloud darbība ar NGINX ir vispiemērotākā lietotājiem, kuriem ir pieredze tīmekļa serveru konfigurēšanā.
Kādas ir prasības, lai darbinātu Nextcloud ar NGINX?
Lai darbinātu Nextcloud ar NGINX, jums būs nepieciešams serveris, kurā darbojas Ubuntu, Debian vai cita saderīga operētājsistēma. Serverim jābūt vismaz 4 GB RAM un diviem procesoriem. Lielākām konfigurācijā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 nepieciešama arī pietiekama uzglabāšanas vieta datiem un dublējumiem.
Instalēšanai būs nepieciešama 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 uzglabāšanai. PHP ir nepieciešams, lai nodrošinātu Nextcloud pamatfunkciju darbību. Programmatūras instalēšanai būs nepieciešams arī konts ar administratora tiesībām.
Kā instalēt Nextcloud ar NGINX
Pirms Nextcloud instalēšanas ir jāveic daži būtiski sagatavošanās darbi. Šajā rokasgrāmatā tiek pieņemts, ka tiek izmantots Ubuntu serveris, kurā sistēma un visas nepieciešamās atkarības jau ir instalētas. Tās ietver NGINX kā tīmekļa serveri, MySQL kā datu bāzi un PHP 8.3 ar visiem nepieciešamajiem paplašinājumiem.
Mēs esam instalējuši arī Certbot, lai atvieglotu SSL sertifikāta konfigurēšanu ar Let’s Encrypt. Mēs arī pieņemam, ka jums ir konfigurēts domēns, lai jūs varētu piekļūt Nextcloud, izmantojot URL, nevis IP adresi.
Varat arī izmantot mūsu pamācības, lai uzzinātu, kā instalēt Nextcloud Ubuntu 22.04, konfigurēt Nextcloud Kubernetesvidē vai instalēt Nextcloud Debian 12.
Kā lejupielādēt un izpakot Nextcloud
Sāciet ar to, ka savā lietotāja direktorijā izveidojat mapi ar nosaukumu „nextcloud“, kurā glabāt instalācijas failus. Lai gan to var izdarīt manuāli, izmantojot 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.zipbashJa instalējat citu Nextcloud versiju, neaizmirstiet atbilstoši atjaunināt URL.
Tad izpakuojiet failu, pārvietojiet 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/nextcloudbashKā izveidot datu bāzi
Lai konfigurētu MySQL datubāzi, izpildiet komandu „sudo“ ( sudo mysql_secure_installation. Ierakstiet „y“, lai iestatītu galvenā lietotāja paroli (VALIDATE PASSWORD), un izvēlieties „2“, lai izveidotu drošu paroli (STRONG), kuru pēc tam varēsiet iestatīt. Nospiediet „y“, lai apstiprinātu paroli, pēc tam atkārtoti nospiediet „y“, lai dzēstu anonīmos lietotājus, atspēkotu attālo pieteikšanos, dzēstu testa datubāzi un pārlādētu privilēģiju tabulas.
Tad rīkojieties šādi:
- Piesakieties kā lietotājs „root“, izmantojot
sudo mysql -u root -p. - Izveidojiet datubāzi, izmantojot:
create database nextcloud;. - Izveidojiet lietotāju, izmantojot:
create user 'nextcloud'@'localhost' identified by <new_password>;. - Piešķiriet atļaujas, izmantojot:
grant all privileges on nextcloud.* to 'nextcloud'@'localhost';. - Visbeidzot, atjauniniet privilēģijas, izmantojot
flush privileges;, un izietiet no datu bāzes konsoles, izmantojotexit.
Kad datu bāze ir veiksmīgi izveidota, Nextcloud konfigurācijas failā ir jāpievieno piekļuves dati (DB_NAME, DB_USER, DB_PASSWORD). Atveriet failu ./var/www/nextcloud/config/config.php un pievienojiet attiecīgos ierakstus:
'dbtype' => 'mysql',
'dbname' => 'nextcloud',
'dbuser' => 'nextcloud',
'dbpassword' => '<your_password>',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,txtKā atspējot NGINX noklusējuma konfigurāciju
Pirms Nextcloud integrēšanas NGINX, ir jāpārliecinās, ka neviens cits konfigurācijas fails nepārraksta Nextcloud instalāciju. Pēc noklusējuma mapē ./etc/nginx/sites-enabled/ joprojām var atrasties konfigurācijas fails default, kas var traucēt konfigurācijas procesu. To var izdzēst, izmantojot:
sudo rm /etc/nginx/sites-enabled/defaultbashTad aktivizējiet savu pielāgoto konfigurāciju ar šo komandu:
sudo ln -s /etc/nginx/sites-available/exampledomain.co.uk /etc/nginx/sites-enabled/bashKā konfigurēt NGINX serveri
Lai konfigurētu NGINX kā tīmekļa serveri, domēnam jau jābūt iestatītam un saistītam ar servera IP adresi. Pārliecinieties, ka arī DNS ir pareizi konfigurēts. Izveidojiet jaunu NGINX konfigurācijas failu direktorijā sites-available, izmantojot:
sudo touch /etc/nginx/sites-available/exampledomain.co.ukbash(Kā URL mēs izmantojām exampledomain.co.uk.)
Atveriet konfigurācijas failu teksta redaktorā (piemēram, Vim), izmantojot:
sudo vim /etc/nginx/sites-available/exampledomain.co.ukbashIevietojiet koda bloku no Nextcloud NGINX konfigurācijas dokumentācijas sadaļas „Nextcloud NGINX tīmekļa sakņu apakšdirektorijā”.
Tā kā HTTPS sertifikāts tiks pievienots ar Certbot, izdzēsiet visas ar SSL saistītās rindas no NGINX konfigurācijas faila. Certbot par to parūpēsies automātiski.
Kā konfigurēt SSL sertifikātu ar Certbot
Lai Nextcloud darbotos caur drošu HTTPS savienojumu, ir jāuzstāda SSL sertifikāts, šajā gadījumā no Let’s Encrypt. Vispirms konfigurējiet ugunsmūri, lai atļautu HTTPS un SSH savienojumus, izmantojot šādas sudo komandas:
sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'bashTālāk aktivizējiet ugunsmūri, izmantojot sudo ufw enable, un pārbaudiet ar sudo ufw status, vai savienojumi ir atļauti. Pēc tam varat izveidot SSL sertifikātu, izmantojot Certbot:
sudo certbot --nginx -d exampledomain.co.ukbashIzpildiet norādījumus, lai norādītu savu e-pasta adresi sertifikāta atjaunošanai un piekristu lietošanas noteikumiem. Izvēlieties 2. opciju, lai automātiski pāradresētu visus HTTP pieprasījumus uz HTTPS. Certbot saglabā sertifikāta failus direktorijā .etc/letsencrypt/live/exampledomain.co.uk/. Failā fullchain.pem atrodas SSL sertifikāts, bet privkey.pem — privātais atslēgas. Tie ir jāpievieno jūsu NGINX konfigurācijas failam:
ssl_certificate /etc/letsencrypt/live/exampledomain.co.uk/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exampledomain.co.uk/privkey.pem;txtTā kā Certbot ir izmainījis konfigurācijas failu, jums atkal jāievieto atribūts ssl starp 443 un http2. Bloks izskatīsies šādi:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name exampledomain.co.uk;
}txtKā pārstartēt pakalpojumus un piekļūt Nextcloud
Lai izmaiņas stātos spēkā, ir jāpārstartē PHP-FPM un NGINX pakalpojumi:
sudo systemctl reload php8.3-fpm.service
sudo systemctl reload nginx.servicebashTagad atveriet savu domēnu pārlūkprogrammā – mūsu gadījumā tas ir exampledomain.co.uk. Ja viss ir konfigurēts pareizi, būtu jāparādās Nextcloud sākuma lapai.
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 atrisinātu šo problēmu, pievienojiet to tur.