Kaip įdiegti ir sukonfigūruoti „Nextcloud“ su „NGINX“
„Nextcloud“ veikimas su „NGINX“ leidžia efektyviai naudoti sistemos išteklius ir suteikia lanksčias diegimo galimybes. Norint viską tinkamai sukonfigūruoti, reikės suderinamos sistemos aplinkos ir tinkamų nustatymų. Be to, siekiant užtikrinti sklandžią integraciją su „NGINX“, reikės atlikti keletą konkrečių koregavimų.
Kas yra NGINX ir kodėl jį verta derinti su „Nextcloud“?
„NGINX“ – tai atvirojo kodo žiniatinklio serverio programinė įranga, kuri taip pat gali veikti kaip atvirkštinis tarpinis serveris, apkrovos paskirstymo įrenginys ir HTTP talpyklė. Iš pradžių „NGINX“ sukūrė rusų programinės įrangos inžinierius Igoris Sysojevas, o platinama pagal BSD licenciją (BSD yra „Unix“ variantas).
NGINX yra sukurtas tam, kad vienu metu galėtų aptarnauti didelį skaičių ryšių. Šiam tikslui pasiekti programinė įranga naudoja įvykių valdomą, neblokuojančią architektūrą. Skirtingai nuo tradicinių žiniatinklio serverių, kurie kiekvienam ryšiui sukuria naują procesą ar srautą, NGINX veikia taip: pagrindinis procesas veikia kartu su keliais pagalbiniais procesais. Pagrindinis procesas tvarko konfigūraciją, o pagalbiniai procesai apdoroja gaunamus klientų užklausimus.
„Nextcloud“ ir „NGINX“ derinys suteikia keletą pagrindinių privalumų aukštos našumo aplinkoms, tarp kurių:
- Efektyvus išteklių naudojimas: „NGINX“ gali vienu metu tvarkyti daugybę ryšių, sunaudodamas tik minimalius išteklius.
- Puikus mastelio keitimas: NGINX palaiko lanksčią apkrovos balansavimą ir yra lengvai pritaikomas, pridedant papildomus serverius.
- Labai pritaikoma architektūra: Dėl savo modulinės struktūros NGINX gali būti pritaikytas įvairiems scenarijams.
- Patikimas veikimas esant didelei serverio apkrovai: net ir esant didelei serverio apkrovai, NGINX veikia patikimai, užtikrindamas nuolatinį jūsų paslaugų prieinamumą.
Kadangi „Nextcloud“ oficialiai palaiko tik „Apache 2.x“ kaip savo žiniatinklio serverį, „NGINX“ oficialiai nepalaikoma. Todėl „Nextcloud“ veikimas su „NGINX“ labiausiai tinka vartotojams, turintiems patirties konfigūruojant žiniatinklio serverius.
Kokie reikalavimai keliami „Nextcloud“ veikimui su „NGINX“?
Norėdami paleisti „Nextcloud“ su „NGINX“, jums reikės serverio, kuriame veikia „Ubuntu“, „Debian“ ar kita suderinama operacinė sistema. Serveris turėtų turėti ne mažiau kaip 4 GB RAM ir du procesorius. Didesnėms sistemoms su keliomis „Nextcloud“ programomis labai rekomenduojama daugiau atminties ir procesorių branduolių. Taip pat reikės pakankamai vietos duomenims ir atsarginėms kopijoms saugoti.
Diegimui taip pat reikės suderinamos duomenų bazės, pavyzdžiui, „MySQL“ ar „MariaDB“, bei skriptų kalbos PHP (reikalinga ne žemesnė kaip 8.1 versija, rekomenduojama 8.3 versija). Duomenų bazė naudojama vartotojų ir įskiepių duomenims, taip pat failų metaduomenims saugoti. PHP reikalinga „Nextcloud“ pagrindinėms funkcijoms vykdyti. Be to, norint įdiegti programinę įrangą, reikės paskyros su administratoriaus teisėmis.
Kaip įdiegti „Nextcloud“ su „NGINX“
Prieš diegiant „Nextcloud“ reikia atlikti keletą būtinų paruošiamųjų veiksmų. Šiame vadove daroma prielaida, kad naudojamas „Ubuntu“ serveris, kuriame jau įdiegta sistema ir visos reikiamos priklausomybės. Tai apima „NGINX“ kaip žiniatinklio serverį, „MySQL“ kaip duomenų bazę ir „PHP 8.3“ su visais būtinais plėtiniais.
Be to, įdiegėme „Certbot“, kad būtų galima lengvai nustatyti SSL sertifikatą naudojant „Let’s Encrypt“. Taip pat manome, kad turite sukonfigūruotą domeną, todėl prie „Nextcloud“ galite prisijungti naudodami URL adresą, o ne IP adresą.
Taip pat galite pasinaudoti mūsų pamokomis, kuriose sužinosite, kaip įdiegti „Nextcloud“ „Ubuntu 22.04“ sistemoje, sukonfigūruoti „Nextcloud“ „Kubernetes“ aplinkoje arba įdiegti „Nextcloud“ „Debian 12“ sistemoje.
Kaip atsisiųsti ir išpakuoti „Nextcloud“
Pirmiausia savo namų kataloge sukurkite aplanką „nextcloud“, kuriame bus saugomi diegimo failai. Nors tai galima padaryti rankiniu būdu, vadovaujantis „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.zipbashJei diegiate kitą „Nextcloud“ versiją, būtinai atitinkamai atnaujinkite URL adresą.
Tada išpakuokite failą, perkelkite jį į tinklalapio šakninį katalogą ./var/www ir nustatykite failo teises:
unzip nextcloud.zip && sudo mv nextcloud /var/www/ && sudo chown -R www-data:www-data /var/www/nextcloudbashKaip sukonfigūruoti duomenų bazę
Norėdami sukonfigūruoti „MySQL“ duomenų bazę, paleiskite komandą „sudo“ ( sudo mysql_secure_installation. Įveskite „y“, kad nustatytumėte administratoriaus slaptažodį (VALIDATE PASSWORD), ir pasirinkite „2“, kad nustatytumėte saugų slaptažodį (STRONG), kurį galėsite sukonfigūruoti vėliau. Paspauskite „y“, kad patvirtintumėte slaptažodį, tada dar kartą paspauskite „y“, kad pašalintumėte anoniminius vartotojus, išjungtumėte nuotolinį prisijungimą, pašalintumėte bandomąją duomenų bazę ir perkrautumėte teisių lenteles.
Tada atlikite šiuos veiksmus:
- Prisijunkite kaip vartotojas „root“ naudodami
sudo mysql -u root -p. - Sukurkite duomenų bazę naudodami:
create database nextcloud;. - Sukurkite vartotoją naudodami:
create user 'nextcloud'@'localhost' identified by <new_password>;. - Suteikite leidimus naudodami:
grant all privileges on nextcloud.* to 'nextcloud'@'localhost';. - Galiausiai atnaujinkite teises naudodami
flush privileges;ir išeikite iš duomenų bazės konsolės naudodamiexit.
Sėkmingai sukonfigūravus duomenų bazę, reikia įtraukti prisijungimo duomenis (DB_NAME, DB_USER, DB_PASSWORD) į „Nextcloud“ konfigūracijos failą. Atidarykite 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,txtKaip išjungti numatytąją NGINX konfigūraciją
Prieš integruodami „Nextcloud“ į „NGINX“, turite įsitikinti, kad jokie kiti konfigūracijos failai nepakeičia „Nextcloud“ diegimo nustatymų. Pagal numatytuosius nustatymus kataloge default vis dar gali būti konfigūracijos failas ./etc/nginx/sites-enabled/, kuris gali trukdyti jūsų diegimui. Pašalinkite jį taip:
sudo rm /etc/nginx/sites-enabled/defaultbashTada įjunkite savo pasirinktą konfigūraciją šia komanda:
sudo ln -s /etc/nginx/sites-available/exampledomain.co.uk /etc/nginx/sites-enabled/bashKaip sukonfigūruoti NGINX serverį
Norint sukonfigūruoti NGINX kaip žiniatinklio serverį, domenas jau turi būti sukonfigūruotas ir susietas su serverio IP adresu. Įsitikinkite, kad DNS taip pat yra teisingai sukonfigūruotas. Sukurkite naują NGINX konfigūracijos failą kataloge sites-available naudodami šią komandą:
sudo touch /etc/nginx/sites-available/exampledomain.co.ukbash(URL adrese naudojome exampledomain.co.uk.)
Atidarykite konfigūracijos failą teksto redaktoriuje (pavyzdžiui, „Vim“) taip:
sudo vim /etc/nginx/sites-available/exampledomain.co.ukbashĮterpkite kodų bloką iš Nextcloud NGINX konfigūracijos dokumentacijos skyriaus „Nextcloud NGINX webroots pakatalogyje“.
Kadangi HTTPS sertifikatas bus įdiegtas naudojant „Certbot“, iš NGINX konfigūracijos failo ištrinkite visas eilutes, susijusias su SSL. „Certbot“ tai atliks automatiškai.
Kaip nustatyti SSL sertifikatą naudojant „Certbot“
Norėdami paleisti „Nextcloud“ per saugų HTTPS ryšį, turite nustatyti SSL sertifikatą, šiuo atveju iš „Let’s Encrypt“. Pirmiausia sukonfigūruokite ugniasienę taip, kad ji leistų HTTPS ir SSH ryšius, naudodami šias „sudo“ komandas:
sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'bashToliau įjunkite ugniasienę, nustatydami vertę sudo ufw enable, ir patikrinkite, nustatydami vertę sudo ufw status, ar ryšiai leidžiami. Tada galite sukurti SSL sertifikatą naudodami „Certbot“:
sudo certbot --nginx -d exampledomain.co.ukbashVadovaukitės ekrane pateikiamais nurodymais, kad nurodytumėte savo el. pašto adresą sertifikato atnaujinimui ir sutiktumėte su paslaugų teikimo sąlygomis. Pasirinkite 2 variantą, kad visi HTTP užklausimai būtų automatiškai nukreipiami į HTTPS. „Certbot“ išsaugo sertifikato failus kataloge .etc/letsencrypt/live/exampledomain.co.uk/. Failas fullchain.pem yra SSL sertifikatas, o privkey.pem – privatus raktas. Juos reikia įtraukti į savo NGINX konfigūracijos failą:
ssl_certificate /etc/letsencrypt/live/exampledomain.co.uk/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exampledomain.co.uk/privkey.pem;txtKadangi „Certbot“ pakeitė konfigūracijos 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;
}txtKaip iš naujo paleisti paslaugas ir prisijungti prie „Nextcloud“
Kad pakeitimai įsigaliotų, reikia perkrauti PHP-FPM ir NGINX paslaugas:
sudo systemctl reload php8.3-fpm.service
sudo systemctl reload nginx.servicebashDabar naršyklėje atidarykite savo domeną – mūsų atveju tai exampledomain.co.uk. Jei viskas buvo sukonfigūruota teisingai, turėtų pasirodyti „Nextcloud“ sveikinimo puslapis.
Jei „Nextcloud“ neatsisiunč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šą.