Guide: Installere Nginx på Debian 11

Forutsetninger

  • OS: Debian 11 (eller nyere)
  • Tilgang: Root eller bruker med sudo-rettigheter
  • Tid: ca. 10 minutter

Steg 1: Oppdater systemet

Før vi installerer noe som helst, er det god praksis å sørge for at alle pakkelister er oppdatert.

sudo apt update
sudo apt upgrade -y

Steg 2: Installere Nginx

Debian har Nginx i sine standard-repository, så installasjonen er enkel:

sudo apt install nginx -y

Når installasjonen er ferdig, skal Nginx starte automatisk. Du kan sjekke statusen med:

systemctl status nginx

Du skal se en grønn tekst som sier active (running).


Steg 3: Konfigurere Brannmur (UFW)

Hvis du bruker UFW (Uncomplicated Firewall), må du åpne for trafikk. Nginx registrerer seg automatisk i UFW ved installasjon.

Sjekk tilgjengelige profiler:

sudo ufw app list

Du vil se tre profiler:

  • Nginx FW: Åpner kun port 80 (ikke kryptert)
  • Nginx Secure: Åpner kun port 443 (HTTPS)
  • Nginx Full: Åpner både port 80 og 443

Vi anbefaler å bruke Nginx Full for å tillate begge deler:

sudo ufw allow 'Nginx Full'

Steg 4: Test Webserveren

Åpne nettleseren din og skriv inn serverens IP-adresse: http://din_server_ip

Du skal nå se standard-siden "Welcome to nginx!".


Steg 5: Sette opp Server Blocks (Valgfritt)

Hvis du skal hoste flere nettsider på samme server, må du bruke "Server Blocks" (tilsvarer Virtual Hosts i Apache).

  1. Lag mappen for nettsiden:
sudo mkdir -p /var/www/mitt-domene.com/html
sudo chown -R $USER:$USER /var/www/mitt-domene.com/html
  1. Lag en enkel index-fil:
echo "<h1>Hei fra Mitt Domene!</h1>" > /var/www/mitt-domene.com/html/index.html
  1. Lag konfigurasjonsfilen:
sudo nano /etc/nginx/sites-available/mitt-domene.com

Lim inn følgende:

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

        root /var/www/mitt-domene.com/html;
        index index.html index.htm index.nginx-debian.html;

        server_name mitt-domene.com www.mitt-domene.com;

        location / {
                try_files $uri $uri/ =404;
        }
}
  1. Aktiver siden: Lag en "symlink" til sites-enabled:
sudo ln -s /etc/nginx/sites-available/mitt-domene.com /etc/nginx/sites-enabled/
  1. Last inn Nginx på nytt:
sudo nginx -t # Sjekk for skrivefeil først!
sudo systemctl restart nginx

Ofte Stilte Spørsmål (FAQ)

Hvordan får jeg HTTPS (Hengelås)?

Den enkleste måten er å bruke Certbot fra Let's Encrypt. sudo apt install certbot python3-certbot-nginx Deretter kjører du: sudo certbot --nginx

Hvor ligger konfigurasjonsfilene?

Hovedfilen ligger på /etc/nginx/nginx.conf. Dine nettsider ligger konfigurert i /etc/nginx/sites-available/.

Feilmelding: "Address already in use"

Dette betyr at port 80 er opptatt. Kjører du kanskje Apache samtidig? Stopp Apache med sudo systemctl stop apache2 og prøv å starte Nginx igjen.