Rularea Nextcloud cu NGINX permite utilizarea eficientă a resurselor sistemului, împreună cu opțiuni flexibile de implementare. Pentru a-l configura corect, veți avea nevoie de un mediu de sistem compatibil și de configurația potrivită. De asemenea, sunt necesare câteva ajustări specifice pentru o integrare fără probleme cu NGINX.

Ce este NGINX și de ce să îl asociezi cu Nextcloud?

NGINX este un software de server web bazat pe cod sursă deschisă, care poate servi și ca server proxy invers, echilibrator de sarcină și cache HTTP. Dezvoltat inițial de inginerul software rus Igor Sysoev, NGINX este distribuit sub licența BSD (BSD este o variantă Unix).

NGINX este conceput pentru a gestiona simultan un număr mare de conexiuni. Pentru a face acest lucru, software-ul utilizează o arhitectură bazată pe evenimente, fără blocaje. Spre deosebire de serverele web tradiționale, care generează un proces sau un thread nou pentru fiecare conexiune, NGINX rulează un proces master alături de mai multe procese worker. Procesul master se ocupă de configurare, în timp ce procesele worker procesează cererile clientului.

Combinarea Nextcloud cu NGINX oferă mai multe avantaje cheie pentru mediile de înaltă performanță, printre care:

  • Utilizarea eficientă a resurselor: NGINX poate gestiona mai multe conexiuni simultan, cu un consum minim de resurse.
  • Scalabilitate excelentă: NGINX acceptă echilibrarea flexibilă a sarcinii și este ușor de scalabil prin adăugarea de servere suplimentare.
  • Arhitectură extrem de personalizabilă: datorită structurii sale modulare, NGINX poate fi adaptat pentru a se potrivi unei game largi de scenarii.
  • Performanță fiabilă în condiții de încărcare intensă a serverului: chiar și atunci când serverul este utilizat intens, NGINX este fiabil, menținând serviciile dvs. disponibile în mod continuu.
Notă

Deoarece Nextcloud acceptă oficial doar Apache 2.x ca server web, nu există suport oficial pentru NGINX. Prin urmare, rularea Nextcloud cu NGINX este cea mai potrivită pentru utilizatorii cu experiență în configurarea serverelor web.

Care sunt cerințele pentru rularea Nextcloud cu NGINX?

Pentru a rula Nextcloud pe NGINX, aveți nevoie de un server care rulează Ubuntu, Debian sau un alt sistem compatibil. Serverul trebuie să aibă cel puțin 4 GB de RAM și două procesoare. Pentru configurații mai mari, cu mai multe aplicații Nextcloud, se recomandă cu tărie mai multă memorie și mai multe nuclee de procesor. De asemenea, veți avea nevoie de spațiu de stocare adecvat pentru date și copii de rezervă.

Pentru instalare, veți avea nevoie și de o bază de date compatibilă, precum MySQL sau MariaDB, precum și de limbajul de script PHP (versiunea minimă 8.1, versiunea 8.3 recomandată). Baza de date este utilizată pentru stocarea datelor utilizatorilor și a datelor pluginurilor, precum și a metadatelor fișierelor. PHP este necesar pentru a rula funcțiile de bază ale Nextcloud. De asemenea, veți avea nevoie de un cont cu drepturi de administrator pentru a instala software-ul.

Cum se instalează Nextcloud cu NGINX

Înainte de instalarea Nextcloud, trebuie efectuate câteva pregătiri esențiale. Acest ghid presupune existența unui server Ubuntu pe care sistemul și toate dependențele necesare sunt deja instalate. Acestea includ NGINX ca server web, MySQL ca bază de date și PHP 8.3 cu toate extensiile necesare.

De asemenea, am instalat Certbot pentru configurarea ușoară a certificatului SSL cu Let’s Encrypt. Presupunem, de asemenea, că aveți un domeniu configurat, astfel încât să puteți accesa Nextcloud printr-o adresă URL, rather than an IP address.

Cum să descărcați și să dezarhivați Nextcloud

Începeți prin a crea un folder numit „nextcloud” în directorul dvs. principal pentru a stoca fișierele de instalare. Deși acest lucru poate fi făcut manual prin intermediul jurnalului de modificări Nextcloud, este mai rapid să utilizați următoarea comandă Curl:

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

Dacă instalați o versiune diferită de Nextcloud, asigurați-vă că actualizați adresa URL în consecință.

Apoi dezarhivați fișierul, mutați-l în rădăcina web ./var/www și setați permisiunile fișierului:

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

Cum se configurează baza de date

Pentru a configura baza de date MySQL, executați comanda sudo sudo mysql_secure_installation. Tastați „y” pentru a seta parola root (VALIDATE PASSWORD) și alegeți „2” pentru o parolă puternică (STRONG), pe care o puteți configura apoi. Apăsați „y” pentru a confirma parola, apoi apăsați din nou „y” pentru a elimina utilizatorii anonimi, a dezactiva conectările la distanță, a elimina baza de date de testare și a reîncărca tabelele de privilegii.

Apoi urmați acești pași:

  1. Conectați-vă ca utilizator root folosind sudo mysql -u root -p.
  2. Creați baza de date folosind: create database nextcloud;.
  3. Creați utilizatorul folosind: create user 'nextcloud'@'localhost' identified by <new_password>;.
  4. Acordați permisiuni folosind: grant all privileges on nextcloud.* to 'nextcloud'@'localhost';.
  5. În final, actualizați privilegiile folosind flush privileges; și ieșiți din consola bazei de date folosind exit.

Odată ce baza de date a fost configurată cu succes, trebuie să adăugați datele de autentificare (DB_NAME, DB_USER, DB_PASSWORD) în fișierul de configurare Nextcloud. Deschideți fișierul ./var/www/nextcloud/config/config.php și adăugați intrările relevante:

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

Cum să dezactivați configurația implicită a NGINX

Înainte de a integra Nextcloud în NGINX, trebuie să vă asigurați că niciun alt fișier de configurare nu suprascrie instalarea Nextcloud. În mod implicit, este posibil să existe încă un fișier de configurare default în ./etc/nginx/sites-enabled/ care ar putea interfera cu configurarea dvs. Eliminați-l folosind:

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

Apoi activați configurația personalizată cu această comandă:

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

Cum se configurează serverul NGINX

Pentru a configura NGINX ca server web, un domeniu trebuie să fie deja configurat și conectat la adresa IP a serverului. Asigurați-vă că DNS-ul este, de asemenea, configurat corect. Creați un nou fișier de configurare NGINX în directorul sites-available folosind:

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

(Am folosit exampledomain.co.uk ca adresă URL.)

Deschideți fișierul de configurare într-un editor de text (cum ar fi Vim) folosind:

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

Inserați blocul de cod din secțiunea „Nextcloud într-un subdirector al rădăcinilor web NGINX” din documentația de configurare Nextcloud NGINX.

Deoarece certificatul HTTPS va fi adăugat cu Certbot, eliminați toate liniile legate de SSL din fișierul de configurare NGINX. Certbot se va ocupa automat de acestea.

Cum se configurează un certificat SSL cu Certbot

Pentru a rula Nextcloud printr-o conexiune HTTPS securizată, trebuie să configurați un certificat SSL, în acest caz de la Let’s Encrypt. Pentru început, configurați firewall-ul pentru a permite conexiunile HTTPS și SSH folosind următoarele comenzi sudo:

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

Apoi, activați firewall-ul cu sudo ufw enable și verificați cu sudo ufw status pentru a vă asigura că conexiunile sunt permise. Apoi puteți crea certificatul SSL folosind Certbot:

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

Urmați instrucțiunile pentru a furniza adresa dvs. de e-mail pentru reînnoirea certificatelor și pentru a accepta termenii și condițiile de utilizare. Alegeți opțiunea 2 pentru a redirecționa automat toate cererile HTTP către HTTPS. Certbot salvează fișierele certificatului în directorul .etc/letsencrypt/live/exampledomain.co.uk/. Fișierul fullchain.pem conține certificatul SSL, iar privkey.pem conține cheia privată. Trebuie să le adăugați la fișierul de configurare NGINX:

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

Deoarece Certbot a modificat fișierul de configurare, trebuie să adăugați din nou atributul ssl între 443 și http2. Blocul ar trebui să arate astfel:

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

Cum să reporniți serviciile și să accesați Nextcloud

Pentru ca modificările să aibă efect, trebuie să reîncărcați serviciile PHP-FPM și NGINX:

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

Acum, deschideți domeniul dvs. în browser - exampledomain.co.uk în cazul nostru. Dacă totul a fost configurat corect, ar trebui să apară pagina de bun venit Nextcloud.

Notă

Dacă Nextcloud nu se încarcă, este posibil ca domeniul dvs. să nu fie listat ca domeniu de încredere în config.php. Adăugați-l acolo pentru a remedia problema.

Mergi la meniul principal