Nginx

Hvordan bruke Nginx Proxy Manager

Hvordan bruke Nginx Proxy Manager
Nginx er en populær webserver og omvendt proxy som brukes til å dirigere trafikk og omdirigere den til en annen server. Å sette opp Nginx som en omvendt proxy kan være tidkrevende og utsatt for feil og feilkonfigurasjoner. Denne guiden viser deg hvordan du konfigurerer og bruker Nginx proxy manager for enklere administrasjon og konfigurasjon. Før du dykker inn i opplæringen, er det noen forutsetninger. Du vil trenge:

  1. En Linux-server
  2. Docker og Docker komponerer installert på serveren
  3. Rot eller bruker med sudo-tillatelser

Hvis du har alt dette, la oss dykke inn.

Hva er Nginx Proxy Manager?

Nginx proxy manager (NPM) er et omvendt proxy management system som kjører på Docker. NPM er basert på en Nginx-server og gir brukerne et rent, effektivt og vakkert webgrensesnitt for enklere administrasjon. Verktøyet er enkelt å sette opp og krever ikke at brukerne vet hvordan de skal jobbe med Nginx-servere eller SSL-sertifikater. NPM er et open source-verktøy som vedlikeholdes av utviklere fra hele verden. Den er godt egnet for små servermiljøer og private laboratoriemiljøer. Denne opplæringen vil fokusere på å vise deg hvordan du distribuerer Nginx proxy manager:

Installere Docker og SQLite

Nginx Proxy manager kjører som en docker container; dermed krever det Docker og docker-compose installert på serveren. For enkelhets skyld vil jeg bare illustrere hvordan du installerer Docker på Ubuntu. Se Docker-dokumentasjonen for referanse om hvordan du konfigurerer den på andre systemer. For å installere Docker på Ubuntu, start med å fjerne gamle Docker-installasjoner. Hopp over dette hvis ingen er tilgjengelige.

sudo apt-get remove docker docker-engine docker.io containerd runc

Deretter installerer du depotet og alle avhengighetene ved hjelp av kommandoene:

sudo apt-get oppdatering
sudo apt-get install apt-transport-https ca-sertifikater krølle gnupg lsb-release -y

Legg til Docker-depotets GPG-nøkkel:

krøll -fsSL https: // nedlasting.docker.no / linux / ubuntu / gpg | sudo gpg --dearmor -o / usr / share / nøkkelringer / docker-arkiv-nøkkelring.gpg

Deretter legger du til det stabile depotet ved hjelp av ekkokommandoen som:

ekko "deb [arch = amd64 signert av = / usr / share / nøkkelringer / docker-arkiv-nøkkelring.gpg] https: // nedlasting.docker.no / linux / ubuntu \
$ (lsb_release -cs) stabil "| sudo tee / etc / apt / sources.liste.d / docker.liste> / dev / null

Til slutt oppdaterer du lagringsplassene og installerer docker ved hjelp av kommandoene:

sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose -y

Kjør nå docker og aktiver ved oppstart:

sudo systemctl aktivere docker.service
sudo systemctl start docker.service
sudo systemctl aktiver containerd.service

Installer SQLite

Neste trinn er å installere SQLite-databasen som vi skal bruke til å kjøre NPM. Det er godt å merke seg at du også kan bruke MySQL-databasen.

Distribuere NPM på Docker

For å distribuere Nginx Proxy Manager, må vi opprette en docker-compose-fil for å kjøre Docker og initialisere beholderen. Hvis du vil lære mer om Docker-komponentfilen og hvordan den fungerer, bør du vurdere ressursene som er koblet her. Jeg anbefaler på det sterkeste at du oppretter docker-compose-filen i en katalog du har full tillatelse.

nano docker-komponere.yaml

Deretter legger du til følgende linjer i komponentfilen, lagrer og lukker.

versjon: "3"
tjenester:
app:
bilde: 'jc21 / nginx-proxy-manager: siste'
start på nytt: alltid
porter:
# HTTP-port
- '80: 80 '
# HTTPS-port:
- '443: 443'
# Administratorgrensesnitt
- '81: 81 '
miljø:
DB_SQLITE_FILE: "/ data / npm.sqlite "
volumer:
- ./ data: / data
- ./ letsencrypt: / etc / letsencrypt

Til slutt kjører du docker-compose-kommandoen som:

docker-komponere opp -d

Dette vil distribuere stakken fra NPM-bildet som er spesifisert i docker-compose-filen. Opprettingsutgang:

Opprette nettverk "debian_default" med standarddriveren
Henter app (jc21 / nginx-proxy-manager: siste) ..
siste: Henter fra jc21 / nginx-proxy-manager
801bfaa63ef2: Trekk komplett
7927cd3bbe4c: Trekk komplett
f53b85628da5: Trekk komplett
e834c30791f9: Trekk komplett
6b68b3708dd5: Trekk komplett
963fe519b5fd: Trekk komplett
37e54d057f10: Trekk komplett
-------------------------------------
Digest: sha256: b33aab798a6150ba7dd238d36936d0882a312c983a0b3eb261a6dcbd5e6a3425
Status: Lastet ned nyere bilde for jc21 / nginx-proxy-manager: siste
Oppretter debian_app_1 ... ferdig

Få tilgang til NPM UI

Når du har opprettet og kjørt, kan du logge på grensesnittet ved hjelp av IP-adressen og porten som er spesifisert i docker-compose-filen. I dette tilfellet port 81.

http: // IP: 81

Det ville være best hvis du landet på NPM-påloggingsgrensesnittet. Skriv inn brukernavn og passord som:

[e-postbeskyttet] og henholdsvis changeme.

Ved første innlogging må du oppdatere administratoropplysningene.

Når du har oppdatert alle brukeropplysningene, kommer du til hovedinstrumentbordet hvor du kan konfigurere proxy-vertene:

Jobber med NPM

Etter å ha installert og sørget for at proxy manager kjører, kan vi legge til en proxy vert for å avsløre en tjeneste som kjører på serveren. Naviger til verter - proxy-verter og klikk på Legg til proxy-vert.

Velg ordningen som HTTP eller HTTPS. Hvis tjenesten du vil eksponere ikke støtter HTTPS-trafikk, hold deg til HTTP. Deretter legger du til domenenavn, Videresend vertsnavn og IP. Du kan også velge Blokker vanlige utnyttelser for ekstra sikkerhet.

Når du har eksponert tjenesten, kan du prøve å få tilgang til den ved hjelp av angitt vertsnavn eller IP og port. Denne tjenesten skal være tilgjengelig. Du kan også administrere proxyen i listen over proxy-verter.

NPM-tilgangsliste

I noen tilfeller kan det hende vi trenger å eksponere en applikasjon eller tjeneste på NPM-proxy-listen for spesifikke IP-adresser. For å konfigurere dette kan du bruke NPM-tilgangslisten.

Naviger til tilgangsliste og klikk på Legg til proxy-liste. Her, gi dem en tilgangsliste et navn; du kan også velge Tilfredsstille alle.

I autorisasjonsfanen angir du brukernavn og passord du vil bruke til å logge på tjenesten.

Naviger til tilgangsfanen og legg til IP-adressene du vil tillate tilkoblinger fra, og nekt alle andre.

For å knytte tilgangslisten til et bestemt webapplikasjon, naviger til Verter - Proxyvert og velg verten. Klikk på Rediger og angi tilgangslisten som definert ovenfor.

Tilrettelegging av SSL-sertifikater

NPM lar deg også skaffe SSL-sertifikater på forskjellige domenenavn. Før du legger til et domenenavn i SSL-bestemmelsen, må du sørge for at domenet peker til NPM-proxy-serveren.

Naviger til SSL-sertifikater, og klikk på Legg til SSL-sertifikat. Oppgi domenenavnene og e-postadressen for Let's Encrypt. Til slutt, godta vilkårene for bruk og lagre. Du kan også legge til en DNS-utfordring, men jeg vil ikke dekke det i denne opplæringen.

Dette vil opprette et nytt pålitelig SSL-sertifikat.

Tilpass hjemmesiden

Du kan også tilpasse standard websiden for NPM-serveren. Klikk på Innstillinger - Standardside og velg Rediger. Du kan velge å vise en 404 FEIL, omdirigere til en ny adresse eller opprette en tilpasset side.

For eksempel er nedenfor en HTML-kode for å vise 403 Forbidden.







403 Forbudt


KILDE: CodePen https: // codepen.io / blecaf / penn / NLoEPY

Konklusjon

Denne opplæringen har sett på å installere og distribuere Nginx Proxy manager på en Ubuntu-server som kjører Docker. Vi dekket deretter hvordan du konfigurerer NPM og legger til verter i proxy manager.

Husk: Konsekvent eksperimentering er nøkkelen til mestring, så eksperimenter bort!

OpenTTD Tutorial
OpenTTD er et av de mest populære forretningssimuleringsspillene der ute. I dette spillet må du lage en fantastisk transportvirksomhet. Du begynner im...
SuperTuxKart for Linux
SuperTuxKart er en flott tittel designet for å gi deg Mario Kart-opplevelsen gratis på Linux-systemet ditt. Det er ganske utfordrende og morsomt å spi...
Kjemp om Wesnoth-opplæringen
Kampen om Wesnoth er et av de mest populære open source-strategispillene du kan spille på dette tidspunktet. Ikke bare har dette spillet vært i utvikl...