Hur man installerar och konfigurerar Nextcloud med NGINX
Att köra Nextcloud med NGINX möjliggör effektiv användning av systemresurser tillsammans med flexibla distributionsalternativ. För att konfigurera det korrekt behöver du en kompatibel systemmiljö och rätt konfiguration. Några specifika justeringar krävs också för smidig integration med NGINX.
Vad är NGINX och varför ska man kombinera det med Nextcloud?
NGINX är en öppen källkodsbaserad webbserverprogramvara som också kan fungera som en omvänd proxyserver, lastbalanserare och HTTP-cache. NGINX utvecklades ursprungligen av den ryska programvaruingenjören Igor Sysoev och distribueras under BSD-licensen (BSD är en Unix-variant).
NGINX är utformat för att hantera ett stort antal anslutningar samtidigt. För att göra detta använder programvaran en händelsestyrd, icke-blockerande arkitektur. Till skillnad från traditionella webbservrar som skapar en ny process eller tråd för varje anslutning, kör NGINX en huvudprocess tillsammans med flera arbetsprocesser. Huvudprocessen hanterar konfigurationen, medan arbetsprocesserna bearbetar inkommande klientförfrågningar.
Att kombinera Nextcloud med NGINX erbjuder flera viktiga fördelar för högpresterande miljöer, bland annat:
- Effektiv resursanvändning: NGINX kan hantera flera anslutningar samtidigt, med minimal resursförbrukning.
- Utmärkt skalbarhet: NGINX stöder flexibel lastbalansering och är lätt att skala upp genom att lägga till ytterligare servrar.
- Mycket anpassningsbar arkitektur: Tack vare sin modulära struktur kan NGINX anpassas för att passa en rad olika scenarier.
- Pålitlig prestanda under tung serverbelastning: Även när servern är hårt belastad är NGINX pålitligt och håller dina tjänster kontinuerligt tillgängliga.
Eftersom Nextcloud endast officiellt stöder Apache 2.x som webbserver finns det inget officiellt stöd för NGINX. Att köra Nextcloud med NGINX passar därför bäst för användare med erfarenhet av webbserverkonfiguration.
Vilka är kraven för att köra Nextcloud med NGINX?
För att köra Nextcloud på NGINX behöver du en server som kör Ubuntu, Debian eller ett annat kompatibelt system. Servern bör ha minst 4 GB RAM-minne och två processorer. För större installationer med flera Nextcloud-appar rekommenderas starkt mer minne och fler processorkärnor. Du behöver också tillräckligt med lagringsutrymme för data och säkerhetskopior.
För installationen behöver du också en kompatibel databas som MySQL eller MariaDB, samt skriptspråket PHP (minst version 8.1, version 8.3 rekommenderas). Databasen används för att lagra användardata och plugin-data, samt filmetadata. PHP krävs för att köra Nextclouds kärnfunktioner. Du behöver också ett konto med administratörsrättigheter för att installera programvaran.
Hur man installerar Nextcloud med NGINX
Vissa viktiga förberedelser bör göras innan Nextcloud installeras. Denna guide utgår från en Ubuntu-server där systemet och alla nödvändiga beroenden redan finns på plats. Dessa inkluderar NGINX som webbserver, MySQL som databas och PHP 8.3 med alla nödvändiga tillägg.
Vi har också installerat Certbot för enkel konfiguration av SSL-certifikat med Let’s Encrypt. Vi antar också att du har en domän konfigurerad så att du kan komma åt Nextcloud via en URL istället för en IP-adress.
Du kan också följa våra handledningar för att lära dig hur du installerar Nextcloud på Ubuntu 22.04, konfigurerar Nextcloud på Kubernetes eller installerar Nextcloud på Debian 12.
Hur man laddar ner och packar upp Nextcloud
Börja med att skapa en mapp med namnet ”nextcloud” i din hemkatalog för att lagra installationsfilerna. Detta kan göras manuellt via Nextclouds ändringslogg, men det går snabbare att använda följande Curl-kommando:
mkdir ~/nextcloud && cd ~/nextcloud
curl --output nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-30.0.5.zipbashOm du installerar en annan version av Nextcloud, se till att uppdatera URL:en i enlighet med detta.
Packa sedan upp filen, flytta den till webbroten ./var/www och ställ in filbehörigheterna:
unzip nextcloud.zip && sudo mv nextcloud /var/www/ && sudo chown -R www-data:www-data /var/www/nextcloudbashHur man konfigurerar databasen
För att konfigurera MySQL-databasen, kör sudo-kommandot sudo mysql_secure_installation. Skriv “y” för att ställa in ditt root-lösenord (VALIDATE PASSWORD) och välj “2” för ett starkt lösenord (STRONG), som du sedan kan ställa in. Tryck på “y” för att bekräfta lösenordet, tryck sedan på “y” igen för att ta bort anonyma användare, inaktivera fjärrinloggningar, ta bort testdatabasen och ladda om behörighetstabellerna.
Följ sedan dessa steg:
- Logga in som root-användare med
sudo mysql -u root -p. - Skapa databasen med:
create database nextcloud;. - Skapa användaren med:
create user 'nextcloud'@'localhost' identified by <new_password>;. - Bevilja behörigheter med:
grant all privileges on nextcloud.* to 'nextcloud'@'localhost';. - Slutligen uppdaterar du behörigheterna med
flush privileges;och avslutar databaskonsolen medexit.
När databasen har konfigurerats måste du lägga till inloggningsuppgifterna (DB_NAME, DB_USER, DB_PASSWORD) i Nextclouds konfigurationsfil. Öppna filen ./var/www/nextcloud/config/config.php och lägg till relevanta poster:
'dbtype' => 'mysql',
'dbname' => 'nextcloud',
'dbuser' => 'nextcloud',
'dbpassword' => '<your_password>',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,txtHur man inaktiverar NGINX:s standardkonfiguration
Innan du integrerar Nextcloud i NGINX måste du se till att inga andra konfigurationsfiler åsidosätter Nextcloud-installationen. Som standard kan det fortfarande finnas en default i ./etc/nginx/sites-enabled/ som kan störa din installation. Ta bort den med:
sudo rm /etc/nginx/sites-enabled/defaultbashAktivera sedan din anpassade konfiguration med följande kommando:
sudo ln -s /etc/nginx/sites-available/exampledomain.co.uk /etc/nginx/sites-enabled/bashHur man konfigurerar NGINX-servern
För att konfigurera NGINX som webbserver måste en domän redan vara konfigurerad och länkad till serverns IP-adress. Se till att DNS också är korrekt konfigurerad. Skapa en ny NGINX-konfigurationsfil i katalogen sites-available med hjälp av:
sudo touch /etc/nginx/sites-available/exampledomain.co.ukbash(Vi använde exampledomain.co.uk som URL.)
Öppna konfigurationsfilen i en textredigerare (t.ex. Vim) med:
sudo vim /etc/nginx/sites-available/exampledomain.co.ukbashInfoga kodblocket från avsnittet ”Nextcloud i en underkatalog till NGINX-webbrots” i dokumentationen för Nextcloud NGINX-konfiguration.
Eftersom HTTPS-certifikatet kommer att läggas till med Certbot, ta bort alla SSL-relaterade rader från NGINX-konfigurationsfilen. Certbot hanterar dessa automatiskt.
Hur man konfigurerar ett SSL-certifikat med Certbot
För att köra Nextcloud över en säker HTTPS-anslutning måste du konfigurera ett SSL-certifikat, i detta fall från Let’s Encrypt. Börja med att konfigurera brandväggen så att den tillåter HTTPS- och SSH-anslutningar med följande sudo-kommandon:
sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'bashAktivera sedan brandväggen med sudo ufw enable och kontrollera med sudo ufw status för att säkerställa att anslutningarna är tillåtna. Därefter kan du skapa SSL-certifikatet med Certbot:
sudo certbot --nginx -d exampledomain.co.ukbashFölj anvisningarna för att ange din e-postadress för certifikatförnyelser och för att godkänna användarvillkoren. Välj alternativ 2 för att automatiskt omdirigera alla HTTP-förfrågningar till HTTPS. Certbot sparar certifikatfilerna i katalogen .etc/letsencrypt/live/exampledomain.co.uk/. Filen fullchain.pem innehåller SSL-certifikatet och privkey.pem innehåller den privata nyckeln. Du måste lägga till dem i din NGINX-konfigurationsfil:
ssl_certificate /etc/letsencrypt/live/exampledomain.co.uk/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exampledomain.co.uk/privkey.pem;txtEftersom Certbot har modifierat konfigurationsfilen måste du lägga till attributet ssl mellan 443 och http2 igen. Blocket ska se ut så här:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name exampledomain.co.uk;
}txtHur man startar om tjänster och kommer åt Nextcloud
För att ändringarna ska träda i kraft måste du ladda om tjänsterna PHP-FPM och NGINX:
sudo systemctl reload php8.3-fpm.service
sudo systemctl reload nginx.servicebashÖppna nu din domän i webbläsaren – i vårt fall exampledomain.co.uk. Om allt har konfigurerats korrekt ska Nextclouds välkomstsida visas.
Om Nextcloud inte laddas kan det bero på att din domän inte är listad som en betrodd domän i config.php. Lägg till den där för att lösa problemet.