← Tilbake til dokumentasjon

Installere og konfigurere NGINX

Steg-for-steg guide for å installere og konfigurere NGINX webserver på din VPS

nginxwebserverkonfigurasjonssl

Introduksjon

NGINX er en kraftig, høyytende webserver og reverse proxy. Denne guiden vil lede deg gjennom installasjon og konfigurasjon av NGINX på din VPS.

Forutsetninger

  • En VPS med Ubuntu/Debian installert
  • Root eller sudo-tilgang
  • Grunnleggende kommandolinje-kunnskap
  • Domenenavn (valgfritt, for SSL-konfigurasjon)

Steg 1: Installer NGINX

Oppdater pakkelisten og installer NGINX:

sudo apt update
sudo apt install nginx -y

Verifiser installasjonen

Sjekk om NGINX kjører:

sudo systemctl status nginx

Du skal se en aktiv (kjørende) status.

Steg 2: Konfigurer brannmur

Tillat HTTP og HTTPS trafikk gjennom brannmuren:

sudo ufw allow 'Nginx Full'
sudo ufw status

Steg 3: Test webserveren din

Åpne nettleseren din og naviger til serverens IP-adresse:

http://din-server-ip

Steg 4: Konfigurer serverblokk

Serverblokker (ligner på virtuelle verter i Apache) lar deg hoste flere nettsteder. La oss opprette en:

Opprett mappestruktur

sudo mkdir -p /var/www/ditt-domene.no/html
sudo chown -R www-data:www-data /var/www/ditt-domene.no/html
sudo chmod -R 755 /var/www/ditt-domene.no

www-data-brukeren er standardbrukeren som NGINX kjører som, noe som sikrer riktig filtilgang og sikkerhet.

Opprett eksempelside

sudo nano /var/www/ditt-domene.no/html/index.html

Legg til litt innhold:

<!DOCTYPE html>
<html>
<head>
    <title>Velkommen til ditt domene</title>
</head>
<body>
    <h1>Suksess! Serveren din kjører.</h1>
    <p>Dette er hostet på NGINX.</p>
</body>
</html>

Opprett serverblokk-konfigurasjon

sudo nano /etc/nginx/sites-available/ditt-domene.no

Legg til følgende konfigurasjon:

server {
    listen 80;
    listen [::]:80;

    root /var/www/ditt-domene.no/html;
    index index.html index.htm;

    server_name ditt-domene.no www.ditt-domene.no;

    location / {
        try_files $uri $uri/ =404;
    }
}

Aktiver serverblokken

sudo ln -s /etc/nginx/sites-available/ditt-domene.no /etc/nginx/sites-enabled/

Test konfigurasjonen

Før omstart, test konfigurasjonen:

sudo nginx -t

Hvis vellykket, last inn NGINX på nytt:

sudo systemctl reload nginx

Steg 5: Sett opp SSL med Let’s Encrypt

Sikre nettstedet ditt med et gratis SSL-sertifikat:

Installer Certbot

sudo apt install certbot python3-certbot-nginx -y

Få SSL-sertifikat

sudo certbot --nginx -d ditt-domene.no -d www.ditt-domene.no

Følg instruksjonene for å fullføre oppsettet. Certbot vil automatisk konfigurere NGINX til å bruke SSL.

Auto-fornyelse

Test fornyelsesprosessen:

sudo certbot renew --dry-run

Certbot setter opp automatisk fornyelse, men det er bra å verifisere at det fungerer.

Steg 6: Optimaliser NGINX-konfigurasjon

Aktiver Gzip-komprimering

Rediger hovedkonfigurasjonen:

sudo nano /etc/nginx/nginx.conf

Fjern kommentering eller legg til disse linjene i http-blokken:

gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml text/javascript 
           application/json application/javascript application/xml+rss;

Konfigurer cache-headere

Legg til i serverblokken din:

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 1y;
    add_header Cache-Control "public, immutable";
}

Vanlige NGINX-kommandoer

Her er noen nyttige kommandoer for å administrere NGINX:

KommandoBeskrivelse
sudo systemctl start nginxStart NGINX
sudo systemctl stop nginxStopp NGINX
sudo systemctl restart nginxStart NGINX på nytt
sudo systemctl reload nginxLast inn konfigurasjon på nytt
sudo nginx -tTest konfigurasjon
sudo systemctl status nginxSjekk status

Feilsøking

Port allerede i bruk

Hvis du får en “port allerede i bruk”-feil:

sudo lsof -i :80
sudo lsof -i :443

Dette vil vise hva som bruker portene.

Konfigurasjonsfeil

Test alltid konfigurasjonen før du laster inn på nytt:

sudo nginx -t

Sjekk feillogger for detaljer:

sudo tail -f /var/log/nginx/error.log

Tilgang nektet

Hvis du ser tilgangsfeil, verifiser korrekt eierskap:

ls -la /var/www/ditt-domene.no

Filene skal eies av www-data:www-data. Hvis ikke, rett opp eierskapet:

sudo chown -R www-data:www-data /var/www/ditt-domene.no
sudo chmod -R 755 /var/www/ditt-domene.no

Sikkerhetspraksis

Merk: Sikkerhet er avgjørende for produksjonsservere. Følg alltid beste praksis:

  • Hold NGINX oppdatert: sudo apt update && sudo apt upgrade
  • Bruk SSL/TLS-sertifikater
  • Konfigurer hastighetsbegrensning
  • Deaktiver server-tokens: server_tokens off;
  • Sett opp fail2ban for ekstra beskyttelse

Neste steg

Nå som du har NGINX kjørende:

  • Sett opp en databaseserver (MySQL/PostgreSQL)
  • Deploy applikasjonen din
  • Konfigurer overvåking og logging
  • Sett opp automatiske sikkerhetskopier

Flere ressurser