Kako namestiti in nastaviti Nextcloud z NGINX-om
Zagon strežnika Nextcloud s strežnikom NGINX omogoča učinkovito izkoriščanje sistemskih virov ter prilagodljive možnosti namestitve. Za pravilno nastavitev potrebujete združljivo sistemsko okolje in ustrezno konfiguracijo. Za nemoteno integracijo s strežnikom NGINX je potrebnih tudi nekaj posebnih prilagoditev.
Kaj je NGINX in zakaj ga povezati z Nextcloudom?
NGINX je odprtokodna programska oprema za spletne strežnike, ki lahko deluje tudi kot strežnik za povratni proxy, porazdeljevalnik obremenitve in HTTP-predpomnilnik. Programsko opremo NGINX, ki jo je prvotno razvil ruski inženir programske opreme Igor Sysoev, se distribuira pod licenco BSD (BSD je različica sistema Unix).
NGINX je zasnovan za sočasno obdelavo velikega števila povezav. Za to program uporablja arhitekturo, ki temelji na dogodkih in ne povzroča blokad. Za razliko od tradicionalnih spletnih strežnikov, ki za vsako povezavo ustvarijo nov proces ali niti, NGINX poleg več delovnih procesov izvaja tudi glavni proces. Glavni proces skrbi za konfiguracijo, delovni procesi pa obdelujejo prihajajoče zahteve odjemalcev.
Povezava Nextclouda z NGINX-om prinaša več ključnih prednosti za visoko zmogljiva okolja, med drugim:
- Učinkovita raba virov: NGINX lahko hkrati obdeluje več povezav z minimalno porabo virov.
- Odlična skalabilnost: NGINX podpira prilagodljivo porazdelitev obremenitve in je z dodajanjem dodatnih strežnikov enostavno skalabilen.
- Visoko prilagodljiva arhitektura: Zahvaljujoč modularni strukturi se NGINX lahko prilagodi širokemu spektru scenarijev.
- Zanesljiva zmogljivost ob visoki obremenitvi strežnika: tudi ko je strežnik močno obremenjen, je NGINX zanesljiv in zagotavlja neprekinjeno razpoložljivost vaših storitev.
Ker Nextcloud uradno podpira le Apache 2.x kot spletni strežnik, za NGINX ni uradne podpore. Zato je uporaba Nextclouda z NGINX-om najbolj primerna za uporabnike, ki imajo izkušnje z nastavitvijo spletnih strežnikov.
Kakšne so zahteve za zagon Nextclouda z NGINX-om?
Za zagon Nextclouda na strežniku NGINX potrebujete strežnik z operacijskim sistemom Ubuntu, Debian ali drugim združljivim sistemom. Strežnik mora imeti vsaj 4 GB pomnilnika RAM in dva procesorska jedra. Za večje konfiguracije z več aplikacijami Nextcloud močno priporočamo več pomnilnika in več procesorskih jeder. Potrebovali boste tudi zadosten prostor za shranjevanje podatkov in varnostnih kopij.
Za namestitev boste potrebovali tudi združljivo bazo podatkov, kot sta MySQL ali MariaDB, ter skriptni jezik PHP (najmanj različica 8.1, priporočena je različica 8.3). Baza podatkov se uporablja za shranjevanje podatkov o uporabnikih in vtičnikih ter metapodatkov o datotekah. PHP je potreben za izvajanje osnovnih funkcij Nextclouda. Za namestitev programske opreme boste potrebovali tudi račun z upraviteljskimi pravicami.
Kako namestiti Nextcloud z NGINX
Pred namestitvijo Nextclouda je treba opraviti nekaj nujnih priprav. Ta navodila predvidevajo strežnik Ubuntu, na katerem so sistem in vse potrebne odvisnosti že nameščene. Mednje spadajo NGINX kot spletni strežnik, MySQL kot podatkovna baza ter PHP 8.3 z vsemi potrebnimi razširitvami.
Namestili smo tudi Certbot za enostavno nastavitev SSL-potrdila s storitvijo Let’s Encrypt. Predvidevamo tudi, da imate nastavljeno domeno, tako da lahko do Nextclouda dostopate prek URL-ja in ne prek IP-naslova.
Poleg tega lahko sledite našim navodilom, da se naučite, kako namestiti Nextcloud na Ubuntu 22.04, nastaviti Nextcloud na Kubernetesu ali namestiti Nextcloud na Debian 12.
Kako prenesti in razpakirati Nextcloud
Najprej v svojem domovskem imeniku ustvarite mapo z imenom »nextcloud«, v kateri boste shranili namestitvene datoteke. Čeprav lahko to storite ročno s pomočjo seznama sprememb Nextclouda, je hitreje, če uporabite naslednji ukaz Curl:
mkdir ~/nextcloud && cd ~/nextcloud
curl --output nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-30.0.5.zipbashČe namestite drugo različico Nextclouda, poskrbite, da ustrezno posodobite URL-naslov.
Nato razpakirajte datoteko, jo premaknite v korenski imenik spletnega strežnika ./var/www in nastavite pravice za datoteko:
unzip nextcloud.zip && sudo mv nextcloud /var/www/ && sudo chown -R www-data:www-data /var/www/nextcloudbashKako nastaviti bazo podatkov
Za namestitev podatkovne zbirke MySQL izvedite ukaz sudo ( sudo mysql_secure_installation. Vnesite »y«, da nastavite geslo za uporabnika root (VALIDATE PASSWORD), in izberite »2« za močno geslo (STRONG), ki ga nato lahko nastavite. Pritisnite »y«, da potrdite geslo, nato pa še enkrat »y«, da odstranite anonimne uporabnike, onemogočite oddaljene prijave, odstranite testno podatkovno zbirko in ponovno naložite tabele privilegijev.
Nato sledite tem korakom:
- Prijavite se kot uporabnik root s pomočjo
sudo mysql -u root -p. - Ustvarite bazo podatkov z uporabo:
create database nextcloud;. - Ustvarite uporabnika s pomočjo:
create user 'nextcloud'@'localhost' identified by <new_password>;. - Dodelite dovoljenja s pomočjo:
grant all privileges on nextcloud.* to 'nextcloud'@'localhost';. - Na koncu posodobite privilegije s pomočjo
flush privileges;in zaprite konzolo baze podatkov s pomočjoexit.
Ko je baza podatkov uspešno nastavljena, morate v konfiguracijsko datoteko Nextclouda vnesti prijavne podatke (DB_NAME, DB_USER, DB_PASSWORD). Odprite datoteko ./var/www/nextcloud/config/config.php in vnesite ustrezne vnose:
'dbtype' => 'mysql',
'dbname' => 'nextcloud',
'dbuser' => 'nextcloud',
'dbpassword' => '<your_password>',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,txtKako onemogočiti privzeto konfiguracijo NGINX-a
Preden vključite Nextcloud v NGINX, se morate prepričati, da nobena druga konfiguracijska datoteka ne prevlada nad namestitvijo Nextclouda. Privzeto je morda v ./etc/nginx/sites-enabled/ še vedno prisotna konfiguracijska datoteka default, ki bi lahko motila vašo namestitev. Odstranite jo z naslednjim ukazom:
sudo rm /etc/nginx/sites-enabled/defaultbashNato s tem ukazom aktivirajte svojo prilagojeno konfiguracijo:
sudo ln -s /etc/nginx/sites-available/exampledomain.co.uk /etc/nginx/sites-enabled/bashKako nastaviti strežnik NGINX
Za nastavitev strežnika NGINX kot spletnega strežnika mora biti domena že nastavljena in povezana z IP-naslovom strežnika. Preverite, ali je tudi DNS pravilno nastavljen. V imeniku sites-available ustvarite novo konfiguracijsko datoteko NGINX z naslednjim ukazom:
sudo touch /etc/nginx/sites-available/exampledomain.co.ukbash(Kot URL smo uporabili exampledomain.co.uk.)
Odpri konfiguracijsko datoteko v urejevalniku besedil (npr. Vim) s pomočjo:
sudo vim /etc/nginx/sites-available/exampledomain.co.ukbashVstavi blok kode iz poglavja »Nextcloud v podimeniku NGINX webroots« v dokumentaciji o konfiguraciji Nextcloud za NGINX.
Ker bo certifikat HTTPS dodan s programom Certbot, iz konfiguracijske datoteke NGINX odstranite vse vrstice, povezane s protokolom SSL. Certbot bo to opravil samodejno.
Kako nastaviti SSL-potrdilo s programom Certbot
Če želite Nextcloud uporabljati prek varne HTTPS-povezave, morate nastaviti SSL-potrdilo, v tem primeru od ponudnika Let’s Encrypt. Najprej nastavite požarni zid tako, da dovoli HTTPS- in SSH-povezave, in sicer z naslednjimi ukazi sudo:
sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'bashNato vklopite požarni zid s sudo ufw enable in s sudo ufw status preverite, ali so povezave dovoljene. Nato lahko s pomočjo Certbota ustvarite SSL-potrdilo:
sudo certbot --nginx -d exampledomain.co.ukbashSledite navodilom, da vnesete svoj e-poštni naslov za obnovo certifikatov in sprejmete pogoje uporabe. Izberite možnost 2, da se vsa HTTP-zahtevka samodejno preusmerijo na HTTPS. Certbot shrani datoteke s certifikati v mapo .etc/letsencrypt/live/exampledomain.co.uk/. Datoteka fullchain.pem vsebuje SSL-certifikat, privkey.pem pa zasebni ključ. Ti ju morate dodati v konfiguracijsko datoteko NGINX:
ssl_certificate /etc/letsencrypt/live/exampledomain.co.uk/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exampledomain.co.uk/privkey.pem;txtKer je Certbot spremenil konfiguracijsko datoteko, morate atribut ssl ponovno vstaviti med 443 in http2. Blok naj bi izgledal takole:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name exampledomain.co.uk;
}txtKako ponovno zagnati storitve in dostopati do Nextclouda
Da bi spremembe začele veljati, morate ponovno zagnati storitvi PHP-FPM in NGINX:
sudo systemctl reload php8.3-fpm.service
sudo systemctl reload nginx.servicebashSedaj odprite svojo domeno v brskalniku – v našem primeru exampledomain.co.uk. Če je vse pravilno nastavljeno, se bo prikazala uvodna stran Nextclouda.
Če se Nextcloud ne naloži, je morda razlog v tem, da vaša domena ni navedena kot zaupanja vredna domena v config.php. Dodajte jo tja, da odpravite težavo.