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.
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.
4. Voer docker-compose uit om de container op de achtergrond (-d) op te starten volgens de gespecificeerde richtlijnen.

5. Voer het volgende commando uit om te controleren of de container actief is.
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.

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.

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.

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.

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

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.
De inhoud van het bestand moet eruitzien als de onderstaande schermafbeelding. Sla het bestand op en verlaat de editor.

Voer docker-compose
uit om de container op de achtergrond te starten (-d
).
Je zou feedback moeten ontvangen die vergelijkbaar is met de schermafbeelding hieronder, waarin de creatie van de tweede container wordt bevestigd.

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.

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

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.
- Scheme: Het protocol om de webserver te benaderen. Laat de standaardwaarde voor nu op
http
.
- 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.

Je hebt nu één proxyhost op de lijst.

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.

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.

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

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.

- 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.

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

- Certificaat: Het eigenlijke certificaatbestand, in .crt- of .pem-indeling.
Klik op Bladeren en navigeer naar uw certificaat in uw bestandsverkenner.

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

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.

5. Klik nu op Hosts —> Proxy Hosts.

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

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.

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.

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.

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.

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.

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.

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

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.

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.

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.

**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.**

**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.**