Nginx Reverse Proxy – Installation und Grundeinrichtung

Vorwort
Der Nginx Proxy Manager macht es sehr einfach, mehrere Webserver gebündelt mit SSL zu verschlüsseln und mit einem Let’s Encrypt Zertifikat zu versehen. Die Verlängerung der Zertifikate erfolgt automatisch. Somit ist der Wartungsaufwand sehr gering.

In dieser Anleitung installieren wir NPM auf eine Ubuntu Server VM, es gibt im Netz aber auch genügend Anleitungen wie man den NPM auch auf anderen Dingen wie z. B. einen Raspberry Pi o.Ä. installiert.

Installation
Zunächst habe ich eine Ubuntu Server 22.04 VM mit Standard Einstellungen erstellt und installiert.
Der VM sollte bei der Installation eine statische IP gegeben werden.

Dann in der Konsole oder mit SSH verbinden und mit…

sudo apt-get update && sudo apt-get full-upgrade –y && sudo reboot

…noch die restlichen Updates installieren und nochmal einen Neustart ausführen.

Nach dem Neustart wird nun Docker und Docker-Compose installiert.

sudo apt install docker -y && sudo apt install docker-compose -y

Jetzt wird ein Ordner für die Docker Compose Datei erstellt.

sudo mkdir /opt/npm

In den gerade erstellten Ordner die Datei docker-compose.yml erstellen.

sudo nano docker-compose.yml

Und folgendes einfügen, gegebenenfalls anpassen und speichern:

version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      # These ports are in format <host-port>:<container-port>
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
      # Add any other Stream port you want to expose
      # - '21:21' # FTP

    # Uncomment the next line if you uncomment anything in the section
    environment:
      # Uncomment this if you want to change the location of
      # the SQLite DB file within the container
      # DB_SQLITE_FILE: "/data/database.sqlite"

      # Uncomment this if IPv6 is not enabled on your host
      DISABLE_IPV6: 'true'

    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

Und jetzt…
sudo docker-compose up –d
…ausführen.

Wenn alles klappt, holt sich Docker jetzt alle Images und konfiguriert NPM.

Jetzt können auch schon die Ports 80 und 443 auf der Firewall bzw. dem Router zu dem Nginx Proxy Manager geöffnet werden.

Die Management-Konsole sollte jetzt vom Browser aus erreichbar sein.
http://“ip vom server“:81

Initial Login ist:
Email:    admin@example.com
Password: changeme

Die E-Mail-Adresse muss in eine Legitime geändert werden, da diese für die Zertifikatsanforderung bei Let’s Encrypt verwendet wird.

Einrichtung
Nun kann man im Tab Hosts auch schon einen Proxy Host erstellen.

Die Domain testcloud.hartinger.net habe ich bereits bei meinen DNS Anbieter auf meine Öffentliche IP konfiguriert.

Unter SSL kann dann noch ein Zertifikat angefordert werden. Dieses wird dann automatisch angefordert, konfiguriert und alle 2 Monate automatisch verlängert.

Der angelegte Host sollte dann so in der Übersicht aussehen.

Die Installation und Einrichtung von Nginx Proxy Manager ist nun fertig.