Eenvoudig beheer van virtuele hosts met NGINX Proxy Manager

Beheren van Proxies en Virtuele Hosts (VHosts) via configuratiebestanden van NGINX kan vervelend worden naarmate het aantal virtuele hosts en webdiensten toeneemt. Hoe kun je het proces vereenvoudigen? Met behulp van NGINX Proxy Manager (NPM).

Lees verder en leer hoe je virtuele hosts kunt maken, beheren en beveiligen met de NGINX Proxy Manager-webconsole.

Vereisten

Deze tutorial zal een hands-on demonstratie zijn. Als je wilt volgen, zorg er dan voor dat je het volgende hebt:

  • A Linux machine to host NGINX Proxy Manager and the proxied webserver- This tutorial uses Fedora 35.
  • Docker om de containers uit te voeren – Deze tutorial maakt gebruik van Docker v20.10.12. Installeer Docker met deze tutorial als je een van de alternatieven nog niet hebt geïnstalleerd.
  • Docker Compose om de Proxy Manager en de bijbehorende vereisten automatisch in te stellen. Deze tutorial maakt gebruik van versie 1.29.2. Installeer Docker Compose om verder te gaan met de rest van het artikel.
  • De domeinnaam fungeert als een virtueel host-eindpunt. In deze tutorial wordt een privé-domeinnaam gebruikt, testweb.com. Zorg ervoor dat de domeinnaam verwijst naar de Linux Host-machine. Je kunt ook een publiek geregistreerde domeinnaam gebruiken
  • . Je moet een SSL-certificaat en bijbehorende certificaatsleutel hebben voor het beveiligen van virtuele hosts. Maak eerst een certificaat en het bijbehorende sleutelbestand aan als je dat nog niet hebt

Instellen van NGINX Proxy Manager

NGINX Proxy Manager is geen pakket dat je installeert op je besturingssysteem. In plaats daarvan is NPM een app die je implementeert in Docker, daarom zijn Docker en Docker Compose de belangrijkste vereisten

Volg de onderstaande stappen om te beginnen met het instellen van NGINX Proxy Manager.

1. Log in op uw Linux-server via SSH of de desktopomgeving indien aanwezig.

2. Maak een YAML-bestand genaamd docker-compose.yml aan en open het met uw favoriete teksteditor, hier wordt vi gebruikt.

vi docker-compose.yml

3. Kopieer en plak de volgende code in de editor. Deze code bevat de richtlijnen om de nieuwste nginx-proxy-manager image te downloaden en in te stellen. Sla het bestand op en sluit het om terug te keren naar de commandoregel.

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped #Zorg ervoor dat de proxy-manager crashes overleeft
    ports:
      #Sta de respectievelijke containerpoorten toe toegankelijk te zijn vanaf de hostmachine
      - '80:80'
      - '81:81' #Poort voor het beheerderspaneel
      - '443:443'
    volumes:
      #Koppel de volgende containermappen aan overeenkomstige mappen op de host
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

4. Voer docker-compose uit om de container op de achtergrond (-d) op te starten volgens de gespecificeerde richtlijnen.

docker-compose up -d
Running Docker Compose to set up NGINX Proxy Manager container

5. Voer het volgende commando uit om te controleren of de container actief is.

docker ps

U zou een actief proces moeten zien dat overeenkomt met de proxy-managercontainer zoals te zien is in de onderstaande schermafbeelding als alles goed gaat.

Listing running Docker containers

Toegang tot het beheerderspaneel

De NGINX Proxy Manager zou nu actief moeten zijn. U kunt nu toegang krijgen tot het NPM-beheerderspaneel om de initiële installatie van de beheerdersgebruiker uit te voeren.

1. Open uw browser venster en ga naar http://<host_ip>:admin-ui-port>. Voor het gemak gebruikt deze handleiding impliciet localhost in plaats van een IP-adres, dat wil zeggen, http://localhost:81, om het beheerderspaneel te starten.

2. Log in met de initiële standaard referenties van het e-mailadres [email protected] en het wachtwoord changeme.

Logging in for the first time

3. Wijzig het standaard gebruikersaccount zoals u wenst. Deze handleiding behoudt de volledige naam en bijnaam en wijzigt alleen het e-mailadres naar [email protected]. Klik op Opslaan om de gebruikersgegevens op te slaan.

Changing admin user default credentials

4. Typ een nieuw wachtwoord voor de gebruiker in het veld Wachtwoord wijzigen zoals hieronder weergegeven. Typ een wachtwoord van acht of meer tekens en klik op Opslaan.

Changing the default password

U zou de wijzigingen die u hebt aangebracht in het gebruikersaccount hieronder moeten zien.

Viewing the user list in NGINX Proxy Manager

Implementatie van de webserver

Nu u de initiële installatie hebt uitgevoerd, is uw volgende stap het starten van een webserver voor uw virtuele host. Volg de stappen in dit gedeelte om snel een Apache-webservicecontainer te starten met behulp van Docker Compose.

Open het docker-compose.yml-bestand dat u eerder hebt aangemaakt in uw teksteditor. Voeg het volgende stuk code toe aan het docker-compose.yml-bestand

Het voordeel van het gebruik van hetzelfde bestand is dat u het bestaande container netwerk kunt aanpassen door een httpd-gebaseerde container toe te voegen die is geregistreerd onder de naam app2 in plaats van in een apart netwerk.

app2:
    #Aangepaste naam voor interne referentie naar de container. Gebruikt voor netwerken tussen containers
    image: 'httpd:latest'
    restart: unless-stopped

De inhoud van het bestand moet eruitzien als de onderstaande schermafbeelding. Sla het bestand op en verlaat de editor.

Adding a web server deployment directive

Voer docker-compose uit om de container op de achtergrond te starten (-d).

docker-compose up -d

Je zou feedback moeten ontvangen die vergelijkbaar is met de schermafbeelding hieronder, waarin de creatie van de tweede container wordt bevestigd.

Creating and starting the Web server with Docker Compose

Creëren van een nieuwe virtuele host

Je hebt nu een werkende webdienst. Dit gedeelte heeft tot doel toegang tot de webserver mogelijk te maken via de gepubliceerde poorten van de NGINX Proxy Manager.

1. Log in op het adminpaneel van de NGINX Proxy Manager.

2. Klik op Hosts —> Proxy Hosts.

Creating a VHOST: Opening the Proxy Host card

3. Klik op Toevoegen Proxy Host om de creatie van een virtuele host voor de webserver te starten.

Creating a VHOST: Adding a Proxy Host

4. Vul het formulier Nieuwe Proxy Host in met de volgende details om de virtuele host in te stellen.

  • Domeinnamen: De domeinnamen waarop je webserver toegankelijk zal zijn. Dit voorbeeld gebruikt het domein testweb.com.
  • Doorsturen Hostnaam / IP: De hostnaam of het IP-adres van de webserver. Aangezien deze tutorial Docker Compose heeft gebruikt om de containers op te zetten, is het voldoende om app2 te gebruiken. Typ in welke naam je hebt opgegeven in docker-compose.yml.
  • Doorsturen Poort: De poort waarop de webserver luistert naar verzoeken. In dit geval zal je poort 80 gebruiken, wat de standaard blootgestelde poort is voor Apache httpd containers.
  • Blokkeren van Gemeenschappelijke Exploits: Als extraatje kunnen proxies opgezet met behulp van NPM gemeenschappelijke exploits blokkeren. Schakel deze optie in.
  • Toegangslijst: Vooraf gespecificeerde lijsten om toegang tot de webserver achter een proxy te regelen. Voor deze tutorial, laat de keuze op Openbaar Toegankelijk om ervoor te zorgen dat je toegang hebt tot de webserver via de proxy.

Het formulier op je scherm zou overeen moeten komen met de onderstaande screenshot. Klik op Opslaan nadat je het formulier hebt ingevuld.

Adding the Proxy Host details

Je hebt nu één proxyhost op de lijst.

List of proxy hosts

5. Ga ten slotte naar de URL van de virtuele host in een nieuw browsertabblad of venster. Voor deze tutorial is de URL http://testweb.com. Als de virtuele host correct werkt, zou je de standaardstartpagina moeten zien.

Accessing the Webserver via the Proxy

SSL-certificaten provisioning

Je hebt de webserver ingezet en bevestigd dat deze draait. Op dit punt heeft de website echter nog geen SSL-certificaat. Hoewel het draaien van interne privéwebsites wellicht prima is zonder een SSL-certificaat, mag hetzelfde niet gebeuren bij het hosten van openbare websites.

Om ervoor te zorgen dat de verbindingen met uw website versleuteld zijn, gaat u vervolgens een SSL-certificaat installeren op uw virtuele host. Maak je geen zorgen; dit doe je vanuit de NGINX Proxy Manager. Maar je zou al een bestaand SSL-certificaat in PEM-indeling en een certificaatsleutel moeten hebben als vereiste.

1. Klik op het tabblad SSL-certificaten in het beheerderspaneel van NGINX Proxy Manager.

Opening the SSL Certificates tab

2. Klik rechtsboven op SSL-certificaten toevoegen —> Aangepast.

Adding a custom SSL certificate

Als alternatief voor een aangepast certificaat kunt u rechtstreeks een Let’s Encrypt-certificaat aanvragen en dynamisch genereren door Let’s Encrypt te selecteren. Maar dit vereist dat uw website en DNS-record openbaar zijn. Anders zal de certificaataanvraag mislukken.

3. Vul het Formulier voor aangepast certificaat toevoegen als volgt in

  • Naam: Een gebruiksvriendelijke naam voor het certificaat in het beheerderspaneel. Deze tutorial gebruikt de naam Testweb Cert.
Provisioning SSL Certificates: Naming the certificate
  • Certificaatsleutel: Deze sleutel wordt geleverd bij het certificaatbestand dat u hebt gegenereerd als vereiste in deze tutorial.

Klik op Bladeren en navigeer naar het sleutelbestand.

Provisioning SSL Certificates: Selecting the key file

Dubbelklik op het sleutelbestand. Voor deze tutorial is de certificaatsleutel genaamd mytesthttpd.key.

Provisioning SSL Certificates: Selecting the key file
  • Certificaat: Het eigenlijke certificaatbestand, in .crt- of .pem-indeling.

Klik op Bladeren en navigeer naar uw certificaat in uw bestandsverkenner.

Provisioning SSL Certificates: Selecting the certificate file

Dubbelklik op het certificaatbestand om het te openen. Voor deze tutorial heet het sleutelbestand mytesthttpd.pem.

Provisioning SSL Certificates: Selecting the certificate file

4. Nadat je alle drie de velden hebt ingevuld, moet je formulier eruitzien zoals op de onderstaande screenshot. Klik op Opslaan om het aangepaste certificaat in te dienen.

Deze handleiding maakt geen gebruik van een tussencertificaat. Negeer dat veld voor nu.

Saving the SSL certificate

5. Klik nu op Hosts —> Proxy Hosts.

Provisioning SSL Certificates: Applying the certificate to a Proxy Host

6. Klik op het kebabmenu-icoon en klik op Bewerken. Let op dat in dit stadium de kolom SSL alleen HTTP zegt

Editing a proxy Host

7. Selecteer het tabblad SSL in het venster Proxyhost bewerken zoals hieronder. Selecteer het certificaat dat je hebt voorzien uit het vervolgkeuzemenu onder SSL-certificaat. Voor deze handleiding is het Testweb-certificaat zoals op de afbeelding hieronder.

Selecting a certificate for a Proxy Host

8. Selecteer het certificaat dat je eerder hebt toegevoegd uit het vervolgkeuzemenu onder SSL-certificaat. Zoals je hieronder kunt zien, is de naam van het certificaat dat je moet selecteren Testweb Cert.

Selecting a certificate for a Proxy Host

9. Schakel alle verbeterde SSL-opties in die beschikbaar zijn, zoals je kunt zien op de onderstaande screenshot, en klik op Opslaan.

De optie Force SSL zal alle verbindingen dwingen of upgraden naar HTTPS, zelfs wanneer de client in eerste instantie probeerde toegang te krijgen tot de HTTP-URL.

Enabling enhanced SSL features

A word of warning with HSTS. As browsers will include the site on an internal inclusion list, your site will no longer work under non-SSL conditions. Therefore, make sure that you have everything set up the correct way first.

Je zult merken dat de waarde in de kolom SSL is veranderd van Alleen HTTP naar Aangepast.

Confirming changes in the SSL setting for a Proxy Host

10. Open tot slot een browsertabblad en navigeer opnieuw naar het domein van je virtuele host. Voor deze handleiding is dat http://testweb.com. De verbinding moet automatisch worden geüpgraded naar HTTPS.

Testing HTTPS access with a browser

Gefeliciteerd! Je hebt de implementatie van een beveiligde virtuele host voltooid met behulp van NGINX Proxy Manager.

Gebruikers toevoegen aan NGINX Proxy Manager

Als je met een team werkt of verwacht dat iemand anders de virtuele hosts in NPM beheert, moet je gebruikers toegang verlenen. In dit gedeelte breid je het beheer van NPM uit, vooral in teamomgevingen, door een gebruiker te maken en rollen en machtigingen toe te wijzen.

1. Klik op Gebruikers op de startpagina van het beheerderspaneel.

Extending NPM with Users: Opening the Users tab

2. Klik op Gebruiker Toevoegen rechtsboven op de Gebruikers-kaart.

Adding a user

3. Voer de volledige naam van de gebruiker in (Testgebruiker), de bijnaam (testgebruiker) en het e-mailadres ([email protected]) in de bijbehorende velden en klik op Opslaan.

Deze gebruiker die je aanmaakt, wordt geen volledige beheerder, schakel dus de rol van beheerder niet in. Je gaat in plaats daarvan aangepaste toestemmingen toewijzen. Klik op Opslaan om de nieuwe gebruiker toe te voegen.

Adding user particulars

4. Stel de toestemmingen in die je aan de gebruiker wilt geven. Voor deze tutorial zal de nieuwe gebruiker de volgende toestemmingsinstellingen hebben.

  • Kan alleen items bekijken die door de gebruiker zijn gemaakt.
  • Kan Proxy Hosts maken, bewerken en verwijderen.
  • Kan Redirection Hosts maken, bewerken en verwijderen.
  • Kan 404 Hosts niet zien.
  • Kan Streams niet zien.
  • Kan Toegangslijsten bekijken.
  • Kan SSL-certificaten maken, bewerken en verwijderen.

Het toestemmingsniveau moet er ongeveer uitzien zoals op de onderstaande screenshot. Klik op Opslaan om het toevoegen van de nieuwe gebruiker te voltooien.

Saving the user’s permissions

5. Klik nu op het kebab-menu van de nieuwe gebruiker en klik op Inloggen als gebruiker. Hiermee wordt de huidige gebruikerscontext omgeschakeld naar Testgebruiker.

Signing in as the new user

**Exploratie van het beheerderspaneel vanuit het perspectief van de nieuwe gebruiker. Volgens de machtigingen van deze gebruiker zouden er minder tabbladen en middelen zichtbaar moeten zijn.**

Confirming access permissions

**Conclusie**

**Gefeliciteerd met het voltooien van deze NGINX Proxy Manager tutorial. Je hebt geleerd om virtuele hosts te beheren en samenwerking mogelijk te maken door gebruikers vanuit de GUI te creëren! Denk je dat je ooit zult teruggaan naar het beheren van NGINX virtuele hosts door handmatige configuratiebestanden te bewerken?**

**Hier is een idee om je kennis verder te testen. Waarom lees je niet meer over** **Hoe NGINX Subdomeinen of Meerdere Domeinen te Serveren**. **Maar in plaats van de handmatige configuraties te volgen, pas toe wat je hebt geleerd en implementeer en configureer de virtuele hosts met behulp van de NGINX Proxy Manager.**

Source:
https://adamtheautomator.com/nginx-proxy-manager/