Technical Anshu Home › Tutorials › Nginx Proxy Manager installeren
🐳 Docker omgekeerde proxy

Nginx Proxy Manager installeren - Installatiehandleiding van 2 minuten

Uw services bevinden zich momenteel op lelijke adressen zoals 192.168.1.50:8080. Nginx Proxy Manager verandert ze in schone namen zoals app.uwdomein.com met gratis HTTPS - geïnstalleerd met één Docker Compose-bestand en beheerd vanuit een eenvoudig webpaneel in plaats van handgeschreven configuratiebestanden.

✍️ Technical Anshu🐳 Docker Compose🎧 Multi-Language Audio
Nginx Proxy Manager installeren - Installatiehandleiding van 2 minuten
🎧 Multi-Language Audio: Video player [Settings] (⚙️) ➔ [Audio Track]

📑Hoofdstukken

  1. Wat een reverse proxy doet: één deur voor al uw services
  2. Wat je nodig hebt voordat je begint: Docker, een domein en bereikbare poorten
  3. Wijs uw domein-DNS naar de server voordat u iets installeert
  4. Maak de map en het docker-compose.yml-bestand
  5. Start Nginx Proxy Manager met één opdracht
  6. Eerste keer inloggen - de stap voor het beheerdersaccount waar iedereen de fout in gaat
  7. Maak uw eerste proxyhost, veld voor veld
  8. Verkrijg het gratis Lets Encrypt HTTPS-certificaat en schakel Force SSL in

📋 Overzicht en stapsgewijze handleiding

1

Wat u nodig heeft voordat u begint

Er moeten drie dingen bestaan voordat Nginx Proxy Manager (NPM) kan werken. Ten eerste een Linux-server of pc waarop Docker en Docker Compose al zijn geïnstalleerd en werken - NPM draait als een container, niet als een normaal programma. Ten tweede een domeinnaam waarvan je de DNS kunt aanpassen, omdat elke dienst zijn eigen subdomein krijgt. Ten derde moet uw router of cloudfirewall poort 80 en 443 naar deze machine kunnen doorsturen.

📌 Over de "2 minuten" in de titel: het starten van de container zelf gaat echt snel, maar pas als Docker al is geïnstalleerd en de voorbereidingen in deze handleiding zijn voltooid. Geef op een nieuwe machine voldoende tijd voor de installatie-, DNS- en certificaatstappen; het eerlijke totaal is langer dan twee minuten.
⚠️ Op een thuisverbinding achter CGNAT kan port forwarding helemaal niet werken - geen enkele instelling binnen NPM lost dit op. De eerlijke opties zijn dan een openbaar/statisch IP-adres van uw ISP, een kleine gehuurde VPS of een tunneltool. Sla deze controle niet over: de helft van alle 'NPM werkt niet'-verhalen zijn in werkelijkheid 'de poorten hebben de server nooit bereikt'-verhalen.
2

Verwijs eerst uw domein-DNS naar de server

NPM routeert verkeer op naam, en Lets Encrypt geeft alleen certificaten uit voor namen die aantoonbaar naar uw machine verwijzen - dus de naam moet worden omgezet voordat u er iets op kunt bouwen. Voeg bij uw registrar of DNS-host een A-record toe: de Naam is alleen het subdomeinwoord (bijvoorbeeld app) en de Waarde is het openbare IP-adres van uw server. Elke service krijgt zijn eigen record en ze kunnen allemaal naar hetzelfde IP-adres verwijzen. NPM scheidt de services later op naam. Stel tijdens het testen een korte TTL in, bijvoorbeeld 300 seconden, zodat fouten binnen enkele minuten verdwijnen in plaats van uren.

Bewijs het voordat u verdergaat: controleer of de naam wordt omgezet naar uw openbare IP vanaf een extern netwerk (bijvoorbeeld vanaf uw telefoon terwijl Wi-Fi is uitgeschakeld). Een certificaat aanvragen tegen kapotte DNS-verspilling Lets Encrypt-pogingen en herhaalde mislukkingen kunnen u urenlang beperken. De volgorde is van belang: DNS eerst, proxyhost als tweede, certificaat als derde.

3

Maak de map en het bestand opstellen

Maak een map voor NPM op de server en sla het onderstaande bestand daarin op als docker-compose.yml. Dit enkele bestand is de volledige installatie. De afbeeldingsnaam is de officiële communityafbeelding. Poorten 80 en 443 zijn de openbare deuren, poort 81 is het beheerderspaneel en de twee volumes zijn waar uw hele installatie zich bevindt: ./data bevat de database met al uw proxyhosts, en ./letsencrypt bevat uw certificaten. Als u deze twee mappen kwijtraakt, raakt u de hele installatie kwijt. Maak er een back-up van zodra alles draait.

docker-compose.yml
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '443:443'
      - '81:81'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

De regel restart: tenzij-stopped brengt NPM automatisch terug na een herstart.

4

Start Nginx Proxy Manager

Voer vanuit die map de startopdracht uit. Docker downloadt de afbeelding en start de container op de achtergrond.

Terminal
docker compose up -d

Controleer of het werkt:

Terminal
docker ps

U zou de container moeten zien staan met poorten 80, 443 en 81. Op een kleine server duurt de eerste start een minuut of twee terwijl de database is gemaakt. Als de container steeds opnieuw opstart, tonen de logboeken de reden in duidelijke taal:

Terminal
docker compose logs

Negen van de tien keer is een herstartlus een poort die al door iets anders op de host wordt gebruikt - meestal een oude webserver die nog draait.

5

Eerste aanmelding - Beveilig het beheerdersaccount onmiddellijk

Open het beheerderspaneel in een browser op uw eigen netwerk:

Browser Address Bar
http://your-server-ip:81

Doe dit in de eerste minuut. Afhankelijk van de build vraagt ​​NPM u om de bekende beheerdersgegevens voor de eerste aanmelding te vervangen door uw eigen e-mailadres en een sterk wachtwoord, of - bij nieuwere builds zonder standaardaccount - maakt de eerste persoon die de beheerderspagina opent de beheerder aan. Hoe dan ook, de regel is hetzelfde: stel uw eigen beheerdersaccount in op het moment dat de container start, voordat u iets anders aanmaakt, en gebruik een echte mailbox - NPM-e-mails die over certificaatproblemen gaan.

⚠️ Laat poort 81 nooit publiek bereikbaar terwijl je ‘het later afmaakt’. Iedereen op internet die het paneel als eerste vindt, is de eigenaar van uw proxy. Houd het beheerderspaneel alleen op uw eigen netwerk.
6

Maak uw eerste proxyhost

Open in NPM Hosts → Proxyhosts → Proxyhost toevoegen en vul het formulier als één zin in - "deze naam gaat naar die interne service":

Domeinnamen: app.uwdomein.com - de exacte openbare naam uit stap 2, die al moet worden omgezet naar uw server.
Schema: http voor de meeste thuis- en kantoorapps. Schema beschrijft de verbinding tussen NPM en de interne dienst, niet wat bezoekers gebruiken - NPM regelt de publieke encryptie aan de deur. Kies hier alleen https als de interne app zelf HTTPS bedient.
Hostnaam/IP doorsturen: het interne adres van de service, bijvoorbeeld 192.168.1.50.
Poort doorsturen: de poort waarop de service daadwerkelijk luistert, bijvoorbeeld 8080 - niet 80 of 443; dat zijn de deuren van NPM, niet die van de dienst.

Schakel Algemene exploits blokkeren in en vervolgens Opslaan. Test onmiddellijk door de naam in een browser te openen - idealiter vanaf uw telefoon met Wi-Fi uitgeschakeld, zodat u het echte openbare pad test.

✅ Een 502 Bad Gateway van NPM is een wegwijzer, geen mislukking: het betekent dat de buitenwereld NPM perfect heeft bereikt en dat alleen de laatste interne hop - hostnaam of poort - verkeerd is. Corrigeer dat veld, niet de hele configuratie. Nog een valkuil: als de service in een andere Docker-container draait, is localhost verkeerd (binnen de NPM-container betekent localhost NPM zelf) - gebruik het LAN-IP van de server met de gepubliceerde poort, of plaats beide containers op hetzelfde Docker-netwerk en gebruik de containernaam.
7

Ontvang het gratis Lets Encrypt HTTPS-certificaat

Doe dit alleen nadat de gewone host uit stap 6 al werkt - HTTPS op een kapotte host geeft je een kapotte host met een certificaat en twee keer zoveel plaatsen om naar de fout te zoeken. Open dezelfde proxyhost, ga naar het tabblad SSL, stel SSL-certificaat in op Een nieuw SSL-certificaat aanvragen, schakel SSL forceren en HTTP/2-ondersteuning in, ga akkoord met de servicevoorwaarden van Lets Encrypt en sla op. Laad de site opnieuw - de browser zou nu het hangslot op https moeten tonen.

Hoe het werkt: Lets Encrypt bewijst dat u de naam beheert door uw server, via het openbare internet op poort 80, te vragen een eenmalig token weer te geven (de HTTP-01-uitdaging). Dat is de reden waarom DNS die naar jou verwijst en een bereikbare poort 80 niet onderhandelbaar is: als je één van beide niet onderhandelt, mislukt het verzoek, en de fout zit in de installatie, nooit in Lets Encrypt. SSL forceren stuurt elke http-bezoeker automatisch door naar https; zonder dit blijft de niet-gecodeerde deur open naast de gecodeerde deur.

📌 Certificaten blijven 90 dagen geldig en NPM vernieuwt ze automatisch, meestal ongeveer een maand vóór de vervaldatum, met hetzelfde poort-80-bewijs. Als een verlenging ooit mislukt, controleer dan eerst de saaie oorzaken: DNS is gewijzigd, de doorsturing van de router is verwijderd of poort 80 is geblokkeerd. Schakel HSTS alleen in als een service is afgehandeld en verlengingen zijn bewezen. Het is een sterke belofte die browsers maandenlang onthouden.

🏷️Variabelen en trefwoorden voor zoeken op onderwerp

🔍 Nginx Proxy Manager 🔍 Reverse Proxy 🔍 Docker Compose 🔍 Lets Encrypt 🔍 Free HTTPS 🔍 Proxy Host 🔍 TechnicalAnshu 🔍 Self Hosting 🔍 Subdomain Setup 🔍 Port 80 443 81 🔍 Force SSL 🔍 Home Server
🎙️ Volledig transcript: tik om uit te vouwen

__TOK_34__

__TOK_35__

__TOK_36__

❓ Veelgestelde vragen

Is deze tutorial 100% gratis te volgen?

__TOK_37__

Kunnen beginners deze handleiding volgen?

__TOK_38__

Waar kan ik vragen stellen als ik vastloop?

__TOK_39__

🚀 Bekijk de volledige tutorial op YouTube

__TOK_40__

__TOK_41__

▶️ Bekijk de volledige video
Deze tutorial is gebaseerd op de Nginx Proxy Manager van Technische Anshu. Installatievideo • Zit je vast bij een stap? Vraag het in de videoreacties — daar krijg je hulp 🙏