NGINX Docker Probleme

  • Hallo zusammen,


    ich versuche seit einigen Tagen einen "NGINX-LetsEncrypt reverse proxy Docker" zum laufen zu bringen, welche die "www.acompanion.net" unter HTTPS erreichbar machen soll.

    Die Webseite haben wir, wie vom Hersteller beschrieben, unter einem Docker laufen, die SSL-Behandlung soll dann unter dem NGINX-LetsEncrypt Docker laufen. Dafür müssen Docker-Compose.yml Dateien geschrieben werden. Uns fehlt es hier an Dockerkenntnisse die auch durch recherche nicht alle Lücken füllt.


    Ich habe hierfür mich an diesem Beispiel Orientiert https://www.libe.net/nginx-proxy (anstatt zwei Docker die auf den Port 80 hören haben wir nur einen)


    Ein Docke Profi könnte dieses Problem ohne großen Aufwand lösen.

    Weshalb wir auch einen Profi der bereit ist mit uns in Kontakt zu treten bezahlen würden.


    Wir betreiben die Docker unter einem Debian 10 Server.

    Ich habe auch die Docker-Compose.yml als Textdatei hochgeladen.

  • Ist das ganze für eine Produktivumgebung im gewerblichen Umfeld?


    Die Docker-compose-nginx.txt benutzt keinen "normalen" nginx Container sondern ein das Open Source Projekt NGINX Proxy Manager.

    https://github.com/NginxProxyManager/nginx-proxy-manager


    Das Ding funktioniert soweit auch (habe ich privat im Einsatz), aber ich weiß nicht ob man das im "professionellen" Umfeld nutzen sollte. Insbesondere reicht es nicht das ganze hier einmal einzurichten und dann so zu lassen. Webserver müssen regelmäßig auf den neusten Stand gebracht werden, damit keiner etwas zu sehen bekommt was er nicht sollte, d.h. regelmäßige Updates fahren und auch checken ob ein container wie der nginx proxy manager noch geupdatet wird in den kommenden Jahren.


    Ich bin kein Profi, das folgende wären meine Gedanken:

    Um das ganze zum laufen zu bringen müsstest du einmal den Standardport von vimp ändern, weil der Proxy sämtliche Anfragen auf 80 und 443 beantworten sollte.

    Also in der Docker Compose statt


    ports:

    - "80:80"


    einmal bspw.


    ports:

    - "8080:80"


    Für den Nginx Proxy Manager würde ich keine SQL Datenbank verwenden wie bisher versucht wurde, sqlite (standardmäßig) reicht da völlig aus.

    Folgendermaßen würde ich das ganze konfigurieren:



    VIMP sähe dann so aus:


    Wichtig ist bei beiden der neue Abschnitt "networks". Durch das Netzwerk "proxy" können die Container ohne Probleme untereinander kommunzieren, sonst gibt es da bei Docker gerne mal verwirrende Fehler.


    Vor dem Start der Container einmal

    Code
    docker network create proxy

    ausführen, um das Docker Netzwerk zu erstellen.


    Unter der IP deines Servers :81 ist dann die Weboberfläche vom Nginx Proxy Manager erreichbar.

    Dort kannst du einen neuen Host hinzufügen (also deine Domain acompanion.net und bei Bedarf auch www.acompanion.net) und unter dem Hostnamen trägst du vimp_httpd ein, als Port den vorher festgelegten 8080. Unter SSL generierst du ein neues Zertifkat (request new certificate) und wählst mindestens Force SSL und HTTP/2.


    pasted-from-clipboard.png


    Ich würde nicht empfehlen die Nutzeroberfläche auf :81 öffentlich zugänglich zu machen. Generell sollte bei deinem Server nur das offen sein, was auch wirklich offen sein muss. Den Rest würde ich über einen VPN wie Wireguard lösen. Also wirklich nur 80, 443, den SSH-Port und den VPN-Port öffnen.


    Da ich den VIMP Container nicht pullen kann, kann ich nicht selbst testen ob das ganze funktioniert, aber wenn man es richtig macht vermutlich schon.

    Bankverbindung für die Lösung kann dann per PM erfragt werden ;)

  • Hallo,


    entschuldige für die späte Antwort, kurz vor Weihnachten ist einiges los gewesen.


    Ich bin deiner Antwort gefolgt und es funktioniert auch alles. Ich habe keine Probleme auf den Nginx Manager zu kommen und die https Verbindung funktioniert.

    Das ein Docker Netzwerk erstellt werden muss hat mir sehr weitergeholfen.

    Nun habe ich noch ein kleines Problem, ich habe unter dem NGINX Proxy Manager Force SSL und HTTP/2 aktiviert. Unter den Browsern von Chrome und Firefox funktioniert das https einwandfrei, jedoch soll diese auch unter bpsw. Opera Browser laufen.


    Da ist auch schon das Problem, der Opera Browser(oder der Edge Browser von Microsoft) erzwingt nicht beim aufrufen die https Verbindung trotz Force SSL.

    Hast du da eine Idee woran das liegen könnte ?

  • Mh das kann ich mir nicht so recht erklären. Vielleicht mal bei Opera die Browserdaten löschen? Unter der Haube ist Opera auch nur Chrome, sollte also auch in diesem Fall genauso funktionieren, weil es ja auch vom Webserver angefordert wird.