#Sonstiges | NGINX Proxy Manager Installation und Einrichtung

Sie betrachten gerade eine ältere Version des Eintrags. Klicken Sie hier, um zur aktuellen Version zu gelangen.

  • Was wollen wir?

    NGINX Proxymanager installieren um interne Dienste nach außen per FQDN erreichbar zu machen


    Warum wollen wir das?

    Um die gewünschten Dienste möglichst sicher mit SSL Zertifikat zu veröffentlichen und nur wenige Ports freigeben zu müssen.


    Und wie geht das genau?


    Voraussetzung ist ein vorhandener Server/PC mit zB VMWare ESXI oder Proxmox um eine VM zu installieren oder ein NAS mit Docker, sowie das die entsprechenden Ports in der Firewall freigeschaltet und an die VM weitergeleitet sind.


    Firewall konfigurieren:


    Port 80 und 443 auf die IP der VM weiterleiten die wir weiter unten installieren:





    Ubuntu installieren und Updates einspielen:


    Die Grundinstallation von Ubuntu in einer VM überspringe ich an dieser Stelle mal


    Code

    Code
    sudo apt-get update
    
    sudo apt-get upgrade


    Docker installieren:


    Code

    Code
    curl -fsSL https://get.docker.com -o get-docker.sh
    
    sudo sh get-docker.sh



    Docker Compose installieren:


    Code

    Code
    sudo curl -L "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    
    sudo chmod +x /usr/local/bin/docker-compose


    Portainer installieren:


    Code

    Code
    sudo docker volume create portainer_data
    
    sudo docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce


    Nginx Proxy Manager installieren:


    Portainer über http://IP:9000 aufrufen und einen Account anlegen.


    In Portainer ein Stack anlegen mit der config:



    Code

    Deploy Stack anklicken und abwarten bis alles heruntergeladen und installiert wird.


    Danach starten wir die Docker Container NGINX Proxy Manager und die Datenbank für den Proxy Manager.


    Nach dem Start der Container noch jeweils einmal drauf klicken und runter scrollen. Der Punkt "Restart Policies" noch auf das gewünschte Startverhalten nach neustart des Servers einstellen.


    Dann kann man über http://IP:81 den Proxy Manager aufrufen und sich mit "[email protected]" und dem Kennwort "changeme" einloggen.



    Nachdem man seine Login Daten angepasst hat kann man einen proxy Host einrichten:


    Domain Name eingeben (eine Domain die auf eure Dyndns Adresse oder feste IP zeigt)*.


    Scheme: http.


    Forward Hostname/IP: IP des Servers/VM/Docker Containers/NAS.


    Forward Port: Port des Dienstes den man veröffentlichen will.


    Haken bei "Block Common Exploits" und "Websockets Support" setzen.


    Unter SSL klickt man "Request new SSL certificate" an und setzt die Haken bei "Force SSL" und "HTTP/2 Support".


    Unter Advanced kann man je nach Dienst noch Code eingeben.


    Dann "Safe" anklicken und kurz warten bis das SSL Zertifikat erfolgreich angefordert wurde.


    Noch einmal den Eintrag öffnen und prüfen das die Einstellungen bei SSL beibehalten wurden.


    Nun kann man über https:/DEINEDOMAIN.de den Dienst aufrufen


    Hier im Beispiel mein Synology NAS was intern unter 192.168.3.2:5001 erreichbar ist:








    * Ich habe das mit meiner Domain folgendermaßen gelöst:


    Dyndns läuft auf meiner UDR


    Domain http://www.meinedomain.de ist eingerichtet bei meinem Anbieter


    In den DNS Einstellungen lege ich mir dann einen CNAME an der auf meine Dyndns Adresse zeigt z.B. meinnas.meinedomain.de


    Im Proxymanager lege ich nun den Host Eintrag mit meinnas.meinedomain.de an und lasse das Zertifikat darauf ausstellen


    Nun kann ich, wenn ich die Adresse meinnas.meinedomain.de aufrufe die Weboberfläche meiner Synology erreichen ohne extra einen Port eingeben zu müssen oder ähnliches und das ganze ist auch noch mit einem Zertifikat versehen was sich selbst (über den Proxymanager) aktualisiert.


    Genau so verfahre ich dann mit jedem weiteren Dienst den ich extern erreichen möchte, der Vorteil ich habe nur Port 80 und 443 auf meinen Proxymanager weitergeleitet und keiner meiner Dienste ist von extern direkt erreichbar.



    Viel Spass mit NGINX Proxy Manager :smiling_face_with_sunglasses:


    Disclaimer: Alle Anleitungen/Tutorials sind nach bestem Wissen und Gewissen verfasst, gehen immer von den definierten Software/Firmware-Versionen aus und sind auf das englische GUI ausgelegt.

    Es gibt keine Garantien auf Erfolg. Im Falle eines Misserfolges hilft aber sicherlich die Community hier immer weiter.

    Keiner der Autoren oder der Betreiber des Forums ist für die aus der Nutzung resultierenden Probleme/Herausforderungen verantwortlich.

    Jegliche hier beschriebenen Schritte erfolgen ausnahmslos in eigener Verantwortung des Durchführenden. Eltern haften für ihre Kinder. :winking_face:

Kommentare

  • Danke für die Anleitung. Installation läuft bei mir auf einer Synology im VLAN 106.

    Die Weiterleitung auf den Proxymanager läuft: npm.domain.de auf http://nginx-proxy-manager:81

    Domain wurde mit einer CNAME auf die DYNDNS Adresse erstellt welche auf der UDM läuft. Das klappt soweit.


    Nun habe ich aber das Problem das ich keine weiteren Hosts erstellen kann. Also z.b. von Proxy Manager (VLAN 06) auf ein anderes VLAN funktioniert nicht.


    In der Firewall habe ich jedoch die Freigabe gemacht das meine Synology mit NPM auf alle anderen Synology (wo eben andere Services laufen) zugreifen kann.


    Irgendwie krieg ich das nicht hin. ich habe auch schon IP auf alle Synologys freigeschaltet probiert. Auch das geht nicht. Irgendwo ist da der Wurm drin.

  • Brauche dringend Hilfe bin seit Tagen verzweifelt

    Mein Problem Nginx ist auf Proxmox mit Docker installiert und dns über Duckdns ip weiterleitung klappt.

    Mein Problem ich leite zb. iobroker intern ip 172.16.0.10:8081 auf homeassist.duckdns.org um.

    SSL anlegen alles klappt es steht auch encypt und Online wenn ich in mein netzwerk über wlan online bin klappt auch die auflösung homeassist.duckdns.org sobald ich ausserhalb von mein netzwerk verbinden möchte klappt es nicht aber http geht.

    Nginx läuft auf 172.16.0.12 die ports 80,443 habe ich auf die ip 172.16.0.12 weitergeleitet auf mein Dream Machine.

    Kann jemand mir sagen warum http klappt und nicht Https von externen Netzwerk??

    Mein dream mascine hängt hinter fritzbox > fritzbox fungiert als modem unifi wählt sich selber über wan

  • Wer auf light container angewiesen ist kann sich auch mariadb sparen :smiling_face:


    Hier ist meine docker-compose.yml file:


  • Hallo @jkasen vielen Dank für diese tolle Anleitung, habe ich damal genutzt und hat auch direkt funktioniert. :thumbs_up:

    Habe aber jetz mal eine Frage wie mache ich ein Update vom Nginx Container, bin was Docker angehr noch recht unerfahren :smiling_face:

    Evtl. könnte man die Anleitung auch dahingehend noch erweitern,

    Gruß Frank

    • Das kannst du ganz einfach über Portainer machen. Klicke auf den Container vom Nginx und dann auf recreate. Im nächsten Fenster den Haken bei Pull latest image setzen. Das wars schon

      Gefällt mir 1
    • Danke :smiling_face: es kann so einfach sein ...

  • Bin grad am überlegen, ich welches Subnet ich den Reverse-Proxy packen soll?

    Ins Default-Netz zu den Unifi Geräten, ins IoT-Netz oder ein eigenes Netz spendieren?

    • ich habe es im Hauptnetz wo auch meine andere Server usw sind.

  • Auch vielen Dank für die tolle Anleitung.


    aber es tauchen Fragen auf.

    Das geht aber nur bei neuen Installationen, oder? Bei bestehenden Nextcloud oder z.b Bitwarden wo schon SSL Zertifikate erstellt sind kann man nicht nachträglich da drauf packen?

    Wenn man die Sachen neu machen würde, sollten diese dann ohne SSL installiert werden?

    Das erschließt sich mir gerade nicht ganz.

    • Wenn du schon eine bestehenden Installationen kannst du das trotzdem machen, da wird dann halt das neue Zertifikat und nicht mehr das alte benutzt.

  • Vielen Dank für die detaillierte Anleitung und für Deine Mühen die Du Dir gemacht hast.


    VG Peter

    Gefällt mir 1