Gå til hovedindhold
50% rabat alle planer, tidsbegrænset. Fra $2.48/mo
14 min left
Web- og forretningsapps

Nginx Proxy Manager på en VPS: En anmeldelse og opsætningsguide

C Af Chike 14 min læsning
Nginx Proxy Manager on a VPS routing one public IP to Dashboard, Media Server, Database, and Blog containers over HTTPS

Du har en VPS med fem eller seks Docker-tjenester på: Nextcloud, Uptime Kuma, en Ghost-blog, måske en Vaultwarden. Én offentlig IP. Og du vil have hver af dem på sit eget subdomæne med HTTPS, uden at redigere Nginx-konfigurationsfiler i hånden, hver gang du tilføjer en container. Det er præcis det problem, Nginx Proxy Manager findes for at løse.

Dette er en anmeldelse og en fuld Nginx Proxy Manager VPS-opsætning i én guide. Nginx Proxy Manager (NPM) er en Docker-app, der pakker Nginx ind i en web-UI: du peger subdomæner mod backend-containere og anmoder om Let's Encrypt-certifikater via et dashboard i stedet for at skrive direktiver i hånden. Guiden er til selv-hostere og systemadministratorer, der allerede kører Docker og nu har brug for en reverse proxy, der ikke kræver, at man rører nginx.conf.

Til sidst vil du vide, om NPM passer til dit tilfælde, du vil have den kørende med HTTPS på din VPS, og du vil kende kriterierne for at skifte til Caddy eller Traefik, når NPM ikke længere er det rette værktøj.

Den korte version

  • Hvad NPM er: en Docker-app, der lægger en web-UI oven på Nginx til at administrere proxy-hosts og automatisk Let's Encrypt-HTTPS. Den passer til folk, der vil have en GUI og kører en lille, ret statisk stak af tjenester.
  • Afvejningerne: konfigurationen ligger i en SQLite-database, så den kan ikke versionsstyres eller diffes som en konfigurationsfil. Pr. 12. juli 2026 er den seneste taggede udgivelse påvirket af CVE-2026-40519, så nye udrulninger bør vente på en tagget udgivelse, der indeholder rettelsen. Dens administrationspanel på port 81 er det vigtigste, du skal låse ned.
  • Dimensionering: NPM selv bruger omkring 50 MB RAM i tomgang. En 1 GB VPS er det praktiske udgangspunkt; 2 GB er behageligt, når du tilføjer tjenesterne bag den.
  • Hvornår du skal skifte: bliv på NPM til en lille, overvejende statisk stak, hvor en GUI betyder noget. Brug Caddy, når du vil have konfiguration som kode og et mindre fodaftryk. Brug Traefik, når hyppige containerændringer gør Docker-auto-discovery mere værdifuld end manuel host-registrering.

Hvad denne guide ikke dækker

Dette er en VPS-udrulningsguide, ikke en referencemanual. For at holde den fokuseret er følgende uden for rammerne:

  • Dyb tilpasning af Nginx-direktiver (brugerdefinerede location-blokke ud over, hvad NPM-UI'en eksponerer).
  • Belastningsfordelingsarkitektur i stor skala.
  • Sammenligning af Kubernetes-ingress.
  • NPM på Windows.
  • Cloudflare Tunnel-vejen til opsætninger uden en statisk IP.

Hvad Nginx Proxy Manager gør (og hvor det bider dig)

Nginx Proxy Manager taking one public IP and routing subdomains such as app, status, cloud, and vault.example.com to separate backend containers, each with SSL enabled

Nginx Proxy Manager er en Docker-applikation, der kører Nginx nedenunder og tilføjer et web-dashboard ovenpå. Du opretter proxy-hosts (subdomæne til backend-container og port) og anmoder om Let's Encrypt-certifikater via formularer i stedet for konfigurationsfiler. Den passer til en lille, ret statisk stak af selv-hostede apps på én VPS.

Ud over det grundlæggende håndterer dashboardet også adgangslister og rå TCP/UDP-stream-videresendelse. For en stak af apps på én VPS er det en reel bekvemmelighed: du tilføjer en container, åbner dashboardet, peger et subdomæne mod den, klikker for at udstede et certifikat. Færdig.

Den vigtigste afvejning er, at NPM's kildekonfiguration som standard ligger i en SQLite-database. NPM genererer godt nok læsbare Nginx-filer under /data/nginx/proxy_host/, men de filer er genererede artefakter snarere end den deklarative konfiguration, du redigerer og versionsstyrer. Du kan inspicere dem, men de er ikke en ren erstatning for en Caddyfile eller Traefik-labels, og den pålidelige måde at reproducere udrulningen på er at gendanne NPM-data- og certifikatvolumenerne. For en lille statisk stak kan det være acceptabelt. For et Git-drevet infrastrukturarbejdsforløb er det en reel begrænsning.

Pr. 12. juli 2026 er den seneste taggede udgivelse v2.15.1, udgivet 3. juni 2026. Projektet er fortsat aktivt og MIT-licenseret, men dets aktuelle sikkerhedsposition kræver et vigtigt forbehold: NVD angiver versionerne 2.9.14 til og med 2.15.1 som påvirket af CVE-2026-40519, en autentificeret kommandoinjektionssårbarhed rettet i commit a5db5ed men endnu ikke inkluderet i en nyere tagget udgivelse. Før du udruller, skal du tjekke udgivelsessiden og bruge den første taggede version, der indeholder den rettelse. NPM vedligeholdes, men v2.15.1 bør på nuværende tidspunkt ikke beskrives som fuldt patchet.

Med hensyn til fodaftryk bruger NPM omkring 50 MB RAM i tomgang ifølge byte-guards reverse-proxy-sammenligning. Det er let nok til, at NPM næsten aldrig er det, der belaster din VPS. Det er tjenesterne bag den.

Min vurdering: NPM er et rimeligt valg i 2026, hvis du vil have en GUI og kører en lille Docker-stak. Hvis du lever i versionsstyring og vil have din proxy-konfiguration i Git, så kig på Caddy i stedet. Den SQLite-baserede konfiguration er den afgørende faktor, ikke noget galt med selve proxyingen.

NPM bytter konfigurationsportabilitet for en GUI. Det bytte er fint for en lille statisk stak og irriterende for et Git-drevet arbejdsforløb.

NPM vs Caddy vs Traefik: Hvilken reverse proxy passer til din VPS

NPM, Caddy, and Traefik compared: NPM is a GUI for small static stacks at about 50 MB idle, Caddy is config-as-code for simple deployments at about 30 MB, and Traefik uses Docker auto-discovery for changing containers at about 80 MB

De tre værktøjer deler sig langs fire akser, der afgør valget: hvordan du konfigurerer dem, hvordan de håndterer HTTPS, hvordan de skalerer med antallet af tjenester, og hvor meget RAM de bruger i tomgang. Her er sammenligningen.

EgenskabNginx Proxy ManagerCaddyTraefik
KonfigurationsmodelWeb-GUI, gemt i SQLiteCaddyfile (tekst, versionsstyrbar)Docker-labels / YAML
Auto-HTTPSJa, anmod pr. host i UI'enJa, som standard, ingen konfigurationJa, kræver ACME-resolver-konfiguration
Docker-auto-discoveryNoNoJa, via container-labels
RAM i tomgang~50 MB~30 MB~80 MB
Bedst egnet tilGUI-brugere, små/statiske stakkeKonfiguration som kode, laveste fodaftrykDynamiske Docker-stakke med hyppige containerændringer

Tallene for RAM i tomgang er omtrentlige observationer fra én sammenligning fra 2026, ikke faste krav. Det faktiske forbrug varierer efter image-version, aktiverede funktioner, trafik og logning.

Skiftekriterierne følger direkte af den tabel. Hvis du vil have et dashboard og kører en håndfuld tjenester, der ikke ændrer sig ofte, er NPM det rette værktøj. Hvis du foretrækker konfiguration som kode, vil have det mindste fodaftryk eller sætter pris på Caddys automatiske HTTPS-provisionering og -fornyelse uden nogen ACME-opsætning, så brug Caddy. Jeg griber selv til Caddy ved enkelt-websted-udrulninger, fordi SSL-håndteringen er automatisk, og Caddyfile'en er kort. Hvis du ofte tilføjer, fjerner eller genudruller containere, betyder Traefiks label-baserede auto-discovery, at du holder op med at registrere hver ny host i hånden.

Der er også ren Nginx med Certbot, som nogle administratorer foretrækker af hensyn til præcis kontrol eller ikke-Docker-udrulninger. Certbot kan automatisere certifikatfornyelse, men du administrerer stadig selv virtual-host-routing og Nginx-konfiguration. Hvis din hovedårsag til at overveje NPM er at undgå manuel proxy-konfiguration, er ren Nginx næppe det bedre valg.

En bemærkning om valget: byte-guards sammenligning lander på Caddy som den letteste mulighed i den sammenligning, og for en ny enkelt-host-opsætning i 2026 er det et rimeligt valg. Caddy vinder på at være lettere end NPM, men hvis du specifikt vil have en GUI, er den ikke dit bedste valg.

For en dybere side-om-side-sammenligning af de underliggende motorer, se sammenligningen Caddy vs Nginx på en VPS.

Forudsætninger: hvad du får brug for

Før du udruller, skal du have disse klar. Det er en kort liste, men springer du et punkt over, vil certifikattrinnet fejle senere.

  • En VPS med Docker og Docker Compose installeret (Ubuntu 22.04 LTS eller Debian 12 er fint).
  • Et domænenavn, med en DNS A-record (og AAAA hvis du bruger IPv6), der peger på din VPS's offentlige IP.
  • SSH-adgang til VPS'en.
  • Port 80 og 443 åbne mod internettet i din firewall.
  • Port 81 kun tilgængelig for dig, ikke åben for offentligheden (dækket i sikkerhedsafsnittet).

Opsætning af Nginx Proxy Manager på din VPS med Docker Compose

Deploying Nginx Proxy Manager with Docker Compose: ports 80 and 443 public, the admin UI on port 81 bound to 127.0.0.1, and backend containers joined to a shared proxy Docker network

Dette afsnit udruller NPM ved hjælp af Docker Compose. Når dine DNS-records resolver til VPS'en, er selve containeropsætningen hurtig, selvom DNS-propagering og certifikatudstedelse kan tage længere tid.

Opsætningen bruger én Docker Compose-fil og en engangskommando til at oprette et delt Docker-netværk. Opret en mappe, opret netværket, tilføj docker-compose.yml -filen nedenfor, og start containeren.

Opret først det delte Docker-netværk:

docker network create proxy

Opret derefter følgende docker-compose.yml fil:

# docker-compose.yml
services:
  npm:
    image: 'jc21/nginx-proxy-manager:<PATCHED_VERSION>'
    restart: unless-stopped
    ports:
      - '80:80'                 # public HTTP
      - '443:443'               # public HTTPS
      - '127.0.0.1:81:81'       # admin UI, reachable only from the VPS itself
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    networks:
      - proxy
networks:
  proxy:
    external: true

Tilslut hver backend-container, som NPM skal nå via tjenestenavn, til det samme eksterne proxy -netværk. Dette lader NPM resolve containeren via dens tjenestenavn uden at publicere backend-applikationens port på VPS'en.

Sikkerhedskopier begge ./data og ./letsencrypt før opgraderinger. Datamappen indeholder NPM's database og genererede konfiguration, mens Let's Encrypt-mappen indeholder dens certifikatmateriale.

Et par ting om denne fil. Imaget bruger som standard en SQLite-database gemt i ./data -volumenet. Det er standard-backend'en, og den er korrekt for de fleste enkelt-VPS-udrulninger. Hvis du har brug for en ekstern database, understøtter NPM MariaDB/MySQL og PostgreSQL, hvilket betyder tilføjelse af en databasetjeneste og de tilhørende miljøvariabler. For en enkelt VPS er SQLite stadig den enkleste standard, medmindre du har en klar grund til at flytte databasen ud af datavolumenet. restart: unless-stopped -politikken betyder, at NPM kommer op igen, hvis VPS'en genstarter, hvilket er, hvad du ønsker for en tjeneste, der sidder foran alt andet.

Start den, og bekræft, at den kører:

docker compose up -d
docker compose ps

Forventet output: npm -containeren med tilstanden Up, port 80 og 443 offentligt mappet, og port 81 kun bundet til 127.0.0.1. Den første opstart tager et par minutter, mens NPM genererer en JWT-nøgle, initialiserer databasen og opretter standard-admin-brugeren. den officielle opsætningsdokumentation beskriver denne første-kørsel-sekvens.

Opret en SSH-tunnel fra din lokale computer, før du åbner administrationsgrænsefladen:

ssh -L 8181:127.0.0.1:81 user@your-vps

Åbn derefter http://127.0.0.1:8181 i din browser. På en ny installation logger du ind med [email protected] og changeme, og udskift derefter straks standard-e-mailen og -adgangskoden. Gør ikke dashboardet offentligt tilgængeligt, mens standard-loginoplysningerne er aktive.

Når du har ændret admin-loginoplysningerne, tilføjer du din første proxy-host:

  1. I dashboardet går du til Hosts, derefter Proxy Hosts, derefter Add Proxy Host.
  2. Indstil Domain Name til dit subdomæne (for eksempel cloud.example.com).
  3. Indstil Forward Hostname / IP til backend-containerens navn eller IP, og Forward Port til den port, den lytter på.
  4. Gem. Proxy-host'en vises på listen, og trafik til det subdomæne når nu din container.

Hvis du kører en Docker-administrations-UI ved siden af dette, gælder det samme mønster: peg et subdomæne mod container-administrationsværktøjet på samme måde, og gør det samme for en overvågningsstack med Prometheus og Grafana du vil have til at sidde bag proxyen.

Konfigurering af automatisk HTTPS for et subdomæne

Configuring automatic HTTPS in Nginx Proxy Manager: a DNS A record points the subdomain at the VPS, Let's Encrypt validates ownership over HTTP-01 on port 80 or DNS-01 for wildcards, and the certificate installs with Force SSL and HTTP/2 enabled

Dette afsnit giver dig et gyldigt, automatisk fornyet Let's Encrypt-certifikat til dit subdomæne. Forudsætningen er den, der fanger folk: DNS A-recorden for det subdomæne skal allerede pege på din VPS, og port 80 skal være tilgængelig fra internettet, fordi Let's Encrypt verificerer domænet ved at forbinde tilbage til det.

Når proxy-host'en er oprettet, anmoder du om certifikatet:

  1. Rediger proxy-host'en, åbn SSL fane.
  2. Under SSL-certifikatvælg Request a new SSL Certificate.
  3. Aktivér Force SSL og HTTP/2 Support. Slå kun HSTS til, efter du har bekræftet, at HTTPS fungerer korrekt, fordi browsere kan cache politikken og gøre det vanskeligere at komme sig efter en fejl i certifikat- eller proxy-konfiguration.
  4. Accepter Let's Encrypt-vilkårene og gem.

Som standard bruger NPM HTTP-01-udfordringen for ikke-wildcard-navne og validerer hvert anmodet værtsnavn over port 80. Et certifikat kan indeholde flere ikke-wildcard-navne, men HTTP-01 kan ikke udstede wildcard-certifikater. Wildcard-navne som f.eks. *.example.com kræver DNS-01-udfordringen med en understøttet DNS-udbyder. Til en normal opsætning med ét subdomæne pr. tjeneste er HTTP-01 alt, hvad du behøver, og fornyelser er automatiske.

Hvis certifikatanmodningen fejler, så tjek port 80 først. Almindelige årsager omfatter en utilgængelig port 80, en forkert cloud-firewall- eller sikkerhedsgruppe-regel og DNS, der ikke er færdig med at propagere. Let's Encrypt kan ikke validere et domæne, den ikke kan nå.

Sikring af NPM-administrationspanelet på en VPS

Securing the Nginx Proxy Manager admin panel: public access to port 81 is blocked while admin access is allowed only through an SSH tunnel or private VPN to 127.0.0.1:81, with two-factor authentication and a patched version

Administrationsgrænsefladen på port 81 er den vigtigste eksponering i en NPM-udrulning, og dette afsnit låser den ned. Dette er driftsmæssig hærdning, ikke en sikkerhedsrevision: tre ting, gjort én gang, og risikoprofilen falder markant.

Først, og vigtigst, hold port 81 bundet til 127.0.0.1 som vist i Docker Compose-filen. Nå dashboardet via SSH-tunnelen beskrevet tidligere. Hvis du har brug for vedvarende fjernadgang, skal du gøre administrationsgrænsefladen tilgængelig kun via en privat VPN. Publicer ikke port 81 på VPS'ens offentlige IP.

For det andet skal du aktivere TOTP-tofaktorgodkendelse på din admin-konto. NPM tilføjede TOTP-baseret 2FA i version 2.13.6, så enhver aktuel installation har den. Slå den til.

For det tredje skal du holde NPM patchet og verificere den nøjagtige udgivelse i stedet for at antage, at latest -tagget er sikkert. CVE-2026-40519 påvirker versionerne 2.9.14 til og med 2.15.1 og kan tillade autentificeret fjernkodeeksekvering via ondsindede DNS-udbyder-loginoplysninger. CVE-2026-50892 påvirker v2.14.0 og kan tillade en autentificeret angriber at få fat i Let's Encrypt-materiale med privat nøgle. Et tidligere problem, CVE-2025-50579, påvirkede v2.12.3 via en CORS-fejl, der kunne eksponere JWT-tokens. Den praktiske regel er enkel: hold port 81 privat, aktiver tofaktorgodkendelse, fastlås en kendt patchet version, og verificer sikkerhedsmeddelelserne før opgradering.

Port 81 forbliver privat, og NPM forbliver patchet. Gør de to ting, og de vigtigste kendte risici bliver meget lettere at håndtere for en normal enkelt-VPS-opsætning.

Dimensionering af din VPS til Nginx Proxy Manager

NPM selv er let; dimensioneringsspørgsmålet handler egentlig om NPM plus de tjenester, der sidder bag den. Proxyens fodaftryk i tomgang er sjældent begrænsningen. En Nextcloud-instans eller Ghost-blog vil bruge flere ressourcer end selve proxyen.

Sådan fungerer niveauerne i praksis:

  • Praktisk minimumsbasis: 1 GB RAM, 1 vCPU og 10 GB lagerplads. En tredjeparts dimensioneringsguide bruger samme basis, men behandl det som planlægningsvejledning snarere end et officielt NPM-krav. Det er nok til NPM, styresystemet og nogle få lette tjenester, men det efterlader begrænset margin.
  • Behageligt: 2 GB RAM, 1 vCPU, 20 GB lagerplads. NPM plus tre til fem tjenester med plads til at ånde. Dette er det ideelle punkt for de fleste selv-hostere.
  • Et niveau op: 4 GB RAM, 2 vCPU. Til otte til tolv tjenester eller en opsætning med betydelig trafik, hvor du vil have CPU-margin til TLS-terminering.

Det tal, du dimensionerer efter, er summen af de proxyede apps, ikke NPM. Læg RAM-fodaftrykket sammen for de tjenester, du har til hensigt at køre, læg proxyens lille tomgangs-overhead oveni, og vælg niveauet over det med margin.

At dimensionere serveren er den nemme del. At få NPM kørende betyder stadig at provisionere VPS'en, installere Docker, hente imaget og gennemgå den første-kørsel-opsætning. Hvis du hellere vil springe provisioneringstrinnene over, har Cloudzys marketplace en ét-kliks Nginx Proxy Manager-udrulning på en NVMe VPS. Den rejser containeren på en ny server, så du går direkte til dashboardet og din første proxy-host. Uanset hvad er dimensioneringsniveauerne ovenfor det, du provisionerer efter.

Ofte stillede spørgsmål

Hvad er forskellen mellem Nginx og Nginx Proxy Manager?

Nginx er selve webserveren og reverse-proxy-motoren, som du konfigurerer ved at redigere tekstfiler. Nginx Proxy Manager er en Docker-applikation, der kører Nginx nedenunder og tilføjer en web-UI ovenpå, så du administrerer proxy-hosts og Let's Encrypt-certifikater via et dashboard i stedet for at skrive konfigurationsfiler. NPM er GUI-laget; Nginx er motoren, der udfører arbejdet.

Er Nginx Proxy Manager stadig værd at bruge i 2026?

Ja, for GUI-foretrækkende brugere, der kører en lille Docker-stak, men kun efter du har verificeret, at det image, du udruller, indeholder de nyeste sikkerhedsrettelser. Pr. 12. juli 2026 er v2.15.1 den seneste taggede udgivelse, og NVD angiver den som påvirket af CVE-2026-40519. Hvis du foretrækker konfiguration som kode, er Caddy fortsat det bedre valg; NPM's SQLite-baserede konfiguration er dens vigtigste driftsmæssige begrænsning.

Hvad er minimums-RAM for Nginx Proxy Manager?

NPM selv bruger omkring 50 MB RAM i tomgang. En 1 GB VPS er et praktisk udgangspunkt, nok til NPM plus et par lette tjenester. 2 GB er behageligt, når du tilføjer flere proxyede apps. Det reelle RAM-krav drives af tjenesterne bag NPM, ikke af NPM selv.

Skal jeg eksponere port 81 mod internettet?

Nej. Hold port 81 bundet til localhost og tilgå den via en SSH-tunnel, eller gør den kun tilgængelig via en privat VPN. Publicer ikke administrationsgrænsefladen på VPS'ens offentlige IP.

Kan jeg køre Nginx Proxy Manager uden Docker?

Nej. NPM distribueres og er designet som en Docker-container, og der findes ingen understøttet ikke-Docker-installation. Hvis du ikke kan eller ikke vil køre Docker, så brug ren Nginx med Certbot eller Caddy som en enkelt binær i stedet.

Understøtter Nginx Proxy Manager wildcard-certifikater?

Ja, via en DNS-01-udfordring med en konfigureret understøttet DNS-udbyder. Standard-certifikater med ét værtsnavn bruger HTTP-01-udfordringen over port 80; wildcard-certifikater (*.example.com) kræver DNS-01, fordi certifikatmyndigheden validerer kontrol ved at skrive en DNS-record i stedet for at nå en enkelt host.

Del

Mere fra bloggen

Læs videre.

Klar til at udrulle? Fra 2,48 $/md.

Uafhængig cloud siden 2008. AMD EPYC, NVMe, 40 Gbps. 14 dages pengene-tilbage-garanti.