- Een Linux-server
- Docker en Docker componeren geïnstalleerd op de server
- Root of gebruiker met sudo-rechten
Als je dit allemaal hebt, laten we er dan in duiken.
Wat is de Nginx Proxy Manager??
De Nginx proxy manager (NPM) is een reverse proxy management systeem dat draait op Docker. NPM is gebaseerd op een Nginx-server en biedt gebruikers een schone, efficiënte en mooie webinterface voor eenvoudiger beheer. De tool is eenvoudig in te stellen en vereist niet dat gebruikers weten hoe ze met Nginx-servers of SSL-certificaten moeten werken. NPM is een open-source tool die wordt onderhouden door ontwikkelaars van over de hele wereld. Het is zeer geschikt voor kleine serveromgevingen en privélabomgevingen. Deze tutorial zal erop gericht zijn u te laten zien hoe u de Nginx-proxymanager implementeert:
Docker en SQLite installeren
Nginx Proxy Manager werkt als een docker-container; dus vereist het dat Docker en docker-compose op de server zijn geïnstalleerd. Voor de eenvoud zal ik alleen illustreren hoe Docker op Ubuntu te installeren. Raadpleeg de Docker-documentatie voor informatie over het instellen op andere systemen. Om Docker op Ubuntu te installeren, begint u met het verwijderen van oude Docker-installaties. Sla dit over als er geen beschikbaar is.
sudo apt-get verwijder docker docker-engine docker.io containerd runcInstalleer vervolgens de repository en alle afhankelijkheden met behulp van de opdrachten:
sudo apt-get updatesudo apt-get install apt-transport-https ca-certificaten curl gnupg lsb-release -y
Voeg de Docker-repository GPG-sleutel toe:
curl -fsSL https://download.havenarbeider.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgVoeg vervolgens de stabiele repository toe met behulp van de echo-opdracht als:
echo "deb [arch=amd64 ondertekend door=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.havenarbeider.com/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.lijst.d/docker.lijst > /dev/null
Werk ten slotte de repositories bij en installeer docker met behulp van de opdrachten:
sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose -yVoer nu docker uit en schakel bij opstarten in:
sudo systemctl docker inschakelen.onderhoudsudo systemctl start docker.onderhoud
sudo systemctl enable containerd.onderhoud
Installeer SQLite
De volgende stap is het installeren van de SQLite-database die we zullen gebruiken om NPM uit te voeren. Het is goed om te weten dat u ook de MySQL-database kunt gebruiken.
NPM implementeren op Docker
Om de Nginx Proxy Manager te implementeren, moeten we een docker-compose-bestand maken om Docker uit te voeren en de container te initialiseren. Bekijk de bronnen die hier zijn gelinkt voor meer informatie over het Docker-opstelbestand en hoe het werkt. Ik raad je ten zeerste aan om het docker-compose-bestand te maken in een map met volledige rechten permission.
nano docker-compose.yamlVoeg vervolgens de volgende regels toe aan het opstelbestand, sla op en sluit.
versie: "3"Diensten:
app:
afbeelding: 'jc21/nginx-proxy-manager:laatste'
herstart: altijd
poorten:
# HTTP-poort
- '80:80'
# HTTPS-poort:
- '443:443'
# Beheerdersinterface
- '81:81'
milieu:
DB_SQLITE_FILE: "/data/npm.sqliet"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Voer ten slotte de opdracht docker-compose uit als:
docker-compose up -dHiermee wordt de stapel geïmplementeerd vanuit de NPM-afbeelding die is opgegeven in het docker-compose-bestand. Creatie output:
Netwerk "debian_default" maken met het standaardstuurprogrammaApp wordt opgehaald (jc21/nginx-proxy-manager:laatste)..
laatste: Pulling van jc21/nginx-proxy-manager
801bfaa63ef2: Trekken voltooid
7927cd3bbe4c: Trekken voltooid
f53b85628da5: Trekken voltooid
e834c30791f9: Trekken voltooid
6b68b3708dd5: Trekken voltooid
963fe519b5fd: Trekken voltooid
37e54d057f10: Trekken voltooid
-------------------------------------
Samenvatting: sha256:b33aab798a6150ba7dd238d36936d0882a312c983a0b3eb261a6dcbd5e6a3425
Status: Nieuwere afbeelding gedownload voor jc21/nginx-proxy-manager: nieuwste
Debian_app_1 maken... klaar
NPM-gebruikersinterface openen
Eenmaal gemaakt en actief, kunt u inloggen op de interface met het IP-adres en de poort die zijn opgegeven in het docker-compose-bestand. In dit geval poort 81.
http://IP:81
Het zou het beste zijn als u op de NPM-aanmeldingsgebruikersinterface terechtkwam. Voer de gebruikersnaam en het wachtwoord in als:
[email protected] en changeme, respectievelijk.
Bij de eerste aanmelding moet u de beheerdersgegevens bijwerken.
Nadat u alle gebruikersgegevens hebt bijgewerkt, gaat u naar het hoofddashboard van waaruit u uw proxyhosts kunt configureren:
Werken met NPM
Nadat we de proxymanager hebben geïnstalleerd en ervoor hebben gezorgd dat deze actief is, kunnen we een proxyhost toevoegen om een service op de server zichtbaar te maken. Navigeer naar Hosts - Proxyhosts en klik op Proxyhost toevoegen.
Selecteer het schema zoals HTTP of HTTPS. Als de service die u wilt vrijgeven geen HTTPS-verkeer ondersteunt, blijf dan bij HTTP. Voeg vervolgens de domeinnamen, Forward hostname en IP toe. U kunt ook Veelvoorkomende exploits blokkeren selecteren voor extra beveiliging.
Nadat u de service hebt blootgesteld, probeert u deze te openen met de opgegeven hostnaam of IP en poort. Deze service moet toegankelijk zijn. U kunt de proxy ook beheren in de lijst met proxyhosts.
NPM-toegangslijst
In sommige gevallen moeten we een toepassing of service op de NPM-proxylijst mogelijk beschikbaar stellen aan specifieke IP-adressen. Om dit te configureren, kunt u de NPM Access List gebruiken.
Navigeer naar Toegangslijst en klik op Proxylijst toevoegen. Geef ze hier een toegangslijst een naam; je kunt ook Satisfy Any selecteren.
Stel op het autorisatietabblad de gebruikersnamen en wachtwoorden in die u wilt gebruiken om u aan te melden bij de service.
Navigeer naar het tabblad Toegang en voeg de IP-adressen toe waarvan u verbindingen wilt toestaan en weiger alle andere.
Om de toegangslijst aan een specifieke webtoepassing te koppelen, navigeert u naar de Hosts - Proxy Host en selecteert u uw host. Klik op Bewerken en stel de toegangslijst in zoals hierboven gedefinieerd.
SSL-certificaten verstrekken
Met NPM kunt u ook SSL-certificaten inrichten op verschillende domeinnamen. Voordat u een domeinnaam aan de SSL-voorziening toevoegt, moet u ervoor zorgen dat het domein naar de NPM-proxyserver verwijst.
Navigeer naar SSL-certificaten en klik op SSL-certificaat toevoegen. Geef de domeinnamen en het e-mailadres op voor Let's Encrypt. Ga ten slotte akkoord met de servicevoorwaarden en sla op. Je kunt ook een DNS-uitdaging toevoegen, maar dat zal ik in deze tutorial niet behandelen.
Hiermee wordt een nieuw vertrouwd SSL-certificaat gemaakt.
Startpagina aanpassen
U kunt ook de standaardwebpagina voor de NPM-server aanpassen. Klik op Instellingen - Standaardsite en selecteer Bewerken. U kunt ervoor kiezen om een 404 ERROR weer te geven, om te leiden naar een nieuw adres of om een aangepaste pagina te maken.
Hieronder staat bijvoorbeeld een HTML-code om 403 Forbidden weer te geven.
BRON: CodePen https://codepen.io/blecaf/pen/NLoEPY
Conclusie
In deze zelfstudie is gekeken naar het installeren en implementeren van de Nginx Proxy-manager op een Ubuntu-server met Docker. Vervolgens hebben we besproken hoe u NPM kunt configureren en hosts kunt toevoegen aan de proxymanager.
Onthoud: consequent experimenteren is de sleutel tot beheersing, dus experimenteer maar weg!