Sådan installeres og konfigureres Nextcloud med NGINX
Når man kører Nextcloud med NGINX, får man både en effektiv udnyttelse af systemressourcerne og fleksible installationsmuligheder. For at få det sat korrekt op skal man have et kompatibelt systemmiljø og den rette konfiguration. Der kræves også et par specifikke justeringer for at sikre en problemfri integration med NGINX.
Hvad er NGINX, og hvorfor bør man kombinere det med Nextcloud?
NGINX er en open source-baseret webserver, der også kan fungere som reverse proxy-server, load balancer og HTTP-cache. NGINX er oprindeligt udviklet af den russiske softwareingeniør Igor Sysoev og distribueres under BSD-licensen (BSD er en Unix-variant).
NGINX er udviklet til at håndtere et stort antal forbindelser samtidigt. Til dette formål anvender softwaren en begivenhedsstyret, ikke-blokerende arkitektur. I modsætning til traditionelle webservere, der opretter en ny proces eller tråd for hver forbindelse, kører NGINX en hovedproces sideløbende med flere arbejdsprocesser. Hovedprocessen varetager konfigurationen, mens arbejdsprocesserne behandler indgående klientanmodninger.
At kombinere Nextcloud med NGINX giver en række vigtige fordele i højtydende miljøer, herunder:
- Effektiv ressourceudnyttelse: NGINX kan håndtere flere forbindelser på én gang med et minimalt ressourceforbrug.
- Fremragende skalerbarhed: NGINX understøtter fleksibel belastningsfordeling og kan nemt skaleres ved at tilføje yderligere servere.
- Meget tilpasselig arkitektur: Takket være sin modulære struktur kan NGINX tilpasses til en lang række scenarier.
- Pålidelig ydeevne under stor serverbelastning: Selv når serveren er under stor belastning, er NGINX pålidelig og sikrer, at dine tjenester altid er tilgængelige.
Da Nextcloud officielt kun understøtter Apache 2.x som webserver, er der ingen officiel support til NGINX. Det er derfor bedst egnet til brugere med erfaring i konfiguration af webservere at køre Nextcloud med NGINX.
Hvad er kravene til at køre Nextcloud med NGINX?
For at køre Nextcloud på NGINX skal du have en server, der kører Ubuntu, Debian eller et andet kompatibelt system. Serveren skal have mindst 4 GB RAM og to CPU’er. Til større installationer med flere Nextcloud-instanser anbefales det på det kraftigste at bruge mere hukommelse og flere CPU-kerner. Du skal desuden have tilstrækkelig lagerplads til data og sikkerhedskopier.
Til installationen skal du desuden have en kompatibel database som f.eks. MySQL eller MariaDB samt script-sproget PHP (minimum version 8.1, version 8.3 anbefales). Databasen bruges til at gemme bruger- og plugin-data samt filmetadata. PHP er nødvendigt for at køre Nextclouds kernefunktioner. Du skal også have en konto med administratorrettigheder for at kunne installere softwaren.
Sådan installeres Nextcloud med NGINX
Der er nogle vigtige forberedelser, der skal udføres, inden Nextcloud installeres. Denne vejledning forudsætter, at der er en Ubuntu-server, hvor systemet og alle nødvendige afhængigheder allerede er installeret. Dette omfatter NGINX som webserver, MySQL som database og PHP 8.3 med alle nødvendige udvidelser.
Vi har desuden installeret Certbot, så du nemt kan konfigurere SSL-certifikater med Let’s Encrypt. Vi går også ud fra, at du har oprettet et domæne, så du kan få adgang til Nextcloud via en URL i stedet for en IP-adresse.
Du kan også følge vores vejledninger for at lære, hvordan du installerer Nextcloud på Ubuntu 22.04, konfigurerer Nextcloud på Kubernetes eller installerer Nextcloud på Debian 12.
Sådan downloades og udpakkes Nextcloud
Start med at oprette en mappe ved navn »nextcloud« i din hjemmemappe til at gemme installationsfilerne i. Selvom dette kan gøres manuelt ved hjælp af Nextclouds changelog, går det hurtigere at bruge følgende Curl-kommando:
mkdir ~/nextcloud && cd ~/nextcloud
curl --output nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-30.0.5.zipbashHvis du installerer en anden version af Nextcloud, skal du huske at opdatere URL-adressen i overensstemmelse hermed.
Pak derefter filen ud, flyt den til webroden ./var/www, og angiv filrettighederne:
unzip nextcloud.zip && sudo mv nextcloud /var/www/ && sudo chown -R www-data:www-data /var/www/nextcloudbashSådan opsættes databasen
For at konfigurere MySQL-databasen skal du køre sudo-kommandoen sudo mysql_secure_installation. Indtast »y« for at angive din root-adgangskode (VALIDATE PASSWORD), og vælg »2« for at få en stærk adgangskode (STRONG), som du derefter kan indstille. Tryk på »y« for at bekræfte adgangskoden, og tryk derefter på »y« igen for at fjerne anonyme brugere, deaktivere fjernlogin, slette testdatabasen og genindlæse rettighedstabellerne.
Følg derefter disse trin:
- Log ind som root-bruger ved hjælp af
sudo mysql -u root -p. - Opret databasen ved hjælp af:
create database nextcloud;. - Opret brugeren ved hjælp af:
create user 'nextcloud'@'localhost' identified by <new_password>;. - Tildel tilladelser ved hjælp af:
grant all privileges on nextcloud.* to 'nextcloud'@'localhost';. - Til sidst skal du opdatere rettighederne ved hjælp af
flush privileges;og afslutte databasekonsollen ved hjælp afexit.
Når databasen er oprettet, skal du tilføje loginoplysningerne (DB_NAME, DB_USER, DB_PASSWORD) til Nextcloud-konfigurationsfilen. Åbn filen ./var/www/nextcloud/config/config.php, og tilføj de relevante oplysninger:
'dbtype' => 'mysql',
'dbname' => 'nextcloud',
'dbuser' => 'nextcloud',
'dbpassword' => '<your_password>',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,txtSådan deaktiveres NGINX’s standardkonfiguration
Inden du integrerer Nextcloud i NGINX, skal du sikre dig, at ingen andre konfigurationsfiler overskriver Nextcloud-installationen. Som standard kan der stadig være en default ationsfil i ./etc/nginx/sites-enabled/, der kan forstyrre din opsætning. Fjern den ved hjælp af:
sudo rm /etc/nginx/sites-enabled/defaultbashAktivér derefter din brugerdefinerede konfiguration med denne kommando:
sudo ln -s /etc/nginx/sites-available/exampledomain.co.uk /etc/nginx/sites-enabled/bashSådan konfigureres NGINX-serveren
For at konfigurere NGINX som webserver skal der allerede være oprettet et domæne, som er knyttet til serverens IP-adresse. Sørg for, at DNS også er konfigureret korrekt. Opret en ny NGINX-konfigurationsfil i mappen sites-available ved hjælp af:
sudo touch /etc/nginx/sites-available/exampledomain.co.ukbash(Vi brugte exampledomain.co.uk som URL.)
Åbn konfigurationsfilen i et tekstredigeringsprogram (f.eks. Vim) ved at skrive:
sudo vim /etc/nginx/sites-available/exampledomain.co.ukbashIndsæt kodeblokken fra afsnittet »Nextcloud i en undermappe til NGINX-webrødderne« i dokumentationen til Nextcloud NGINX-konfigurationen.
Da HTTPS-certifikatet vil blive tilføjet med Certbot, skal du fjerne alle SSL-relaterede linjer fra NGINX-konfigurationsfilen. Certbot tager sig automatisk af dette.
Sådan konfigureres et SSL-certifikat med Certbot
For at køre Nextcloud via en sikker HTTPS-forbindelse skal du konfigurere et SSL-certifikat, i dette tilfælde fra Let’s Encrypt. Start med at konfigurere firewallen, så den tillader HTTPS- og SSH-forbindelser, ved hjælp af følgende sudo-kommandoer:
sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'bashAktivér derefter firewallen ved at indstille sudo ufw enable, og kontroller ved hjælp af sudo ufw status, at forbindelserne er tilladt. Derefter kan du oprette SSL-certifikatet ved hjælp af Certbot:
sudo certbot --nginx -d exampledomain.co.ukbashFølg vejledningen for at angive din e-mailadresse til certifikatfornyelser og for at acceptere servicevilkårene. Vælg mulighed 2 for automatisk at omdirigere alle HTTP-anmodninger til HTTPS. Certbot gemmer certifikatfilerne i mappen .etc/letsencrypt/live/exampledomain.co.uk/. Filen fullchain.pem indeholder SSL-certifikatet, og privkey.pem indeholder den private nøgle. Du skal tilføje dem til din NGINX-konfigurationsfil:
ssl_certificate /etc/letsencrypt/live/exampledomain.co.uk/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exampledomain.co.uk/privkey.pem;txtDa Certbot har ændret konfigurationsfilen, skal du igen indsætte attributten ssl mellem 443 og http2. Blokken skal se således ud:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name exampledomain.co.uk;
}txtSådan genstarter du tjenester og får adgang til Nextcloud
For at ændringerne skal træde i kraft, skal du genstarte PHP-FPM- og NGINX-tjenesterne:
sudo systemctl reload php8.3-fpm.service
sudo systemctl reload nginx.servicebashÅbn nu dit domæne i browseren – i vores tilfælde exampledomain.co.uk. Hvis alt er konfigureret korrekt, bør Nextclouds velkomstside nu vises.
Hvis Nextcloud ikke indlæses, kan det skyldes, at dit domæne ikke er angivet som et betroet domæne i config.php. Tilføj det der for at løse problemet.