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.