Sett opp nginx i Docker på VPS-en din

nginx er en populær webserver som ofte brukes til å publisere nettsider og webapplikasjoner. I denne veiledningen viser vi hvordan du kjører nginx i en Docker-container på en Ubuntu-basert VPS.

Før du begynner

Du trenger:

  • En Ubuntu-basert VPS
  • Docker installert
  • Tilgang til VPS-en via SSH
  • Et domene som peker til VPS-en

Merk: Denne veiledningen forutsetter at Docker allerede er installert på VPS-en. Hvis du ikke har gjort dette ennå, kan du følge veiledningen Installer Docker på VPS-en din.


Steg 1 – Opprett en mappe for nginx

Opprett en mappe der Docker-konfigurasjonen og nettsidene skal lagres:

mkdir -p /opt/containers/nginx/html

Du kan bruke en annen mappe hvis du ønsker det, men da må du også oppdatere filstiene i de neste stegene.


Steg 2 – Opprett docker-compose.yml

Opprett en ny Docker Compose-fil:

nano /opt/containers/nginx/docker-compose.yml

Lim inn følgende innhold:

version: '2'

services:
  nginx:
    image: nginx:latest
    container_name: nginx
    volumes:
      - ./html:/usr/share/nginx/html
    networks:
      - proxy
    restart: unless-stopped
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.nginx.entrypoints=http"
      - "traefik.http.routers.nginx.rule=Host(`nginx.dittdomene.no`)"
      - "traefik.http.middlewares.nginx-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.nginx.middlewares=nginx-https-redirect"
      - "traefik.http.routers.nginx-secure.entrypoints=https"
      - "traefik.http.routers.nginx-secure.rule=Host(`nginx.dittdomene.no`)"
      - "traefik.http.routers.nginx-secure.tls=true"
      - "traefik.http.routers.nginx-secure.tls.certresolver=http"
      - "traefik.http.routers.nginx-secure.service=nginx"
      - "traefik.http.services.nginx.loadbalancer.server.port=80"
      - "traefik.docker.network=proxy"

networks:
  proxy:
    external: true

Steg 3 – Tilpass domenenavnet

Før du starter containeren, må du erstatte domenet i Docker Compose-filen med ditt eget.

Endre disse linjene:

Host(`nginx.dittdomene.no`)

til domenet eller subdomenet du ønsker å bruke.

Hvis du vil publisere nettstedet direkte på hoveddomenet, kan du bruke både domenet med og uten www.


Steg 4 – Start nginx-containeren

Start containeren med følgende kommando:

docker compose -f /opt/containers/nginx/docker-compose.yml up -d

Første gang containeren starter, blir nginx automatisk installert.

Hvis alt er konfigurert riktig, skal du nå kunne åpne domenet ditt i nettleseren og se nginx sin standardside.


Steg 5 – Publiser en enkel nettside

Opprett en HTML-fil:

nano /opt/containers/nginx/html/index.html

Legg inn ønsket HTML-innhold og lagre filen.

Alle filer som ligger i html-mappen blir automatisk tilgjengelige via nginx. Du trenger ikke å starte containeren på nytt når du oppdaterer innholdet.


Var denne artikkelen nyttig?

Fant du ikke det du trengte?

Chat med oss

Trenger du hjelp? Chat med oss direkte hverdager mellom kl. 8:30-16:30

Snakk med oss

Du kan ringe oss direkte på hverdager mellom kl. 09:00-15:00