1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Servermanagement
  • Alles
  • Servermanagement
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Lexikon
  3. Systemadministration
  4. Servermanagement

Nginxproxymanager Setup

  • PixelPatron
  • 23. Juni 2024 um 01:41
  • 4. Januar 2025 um 22:35
  • 818 mal gelesen
  • Vor kurzem musste ich mein geliebtes und bis dato immer funktionierendes Proxy Setup zwischen meinem apache2 Host und meiner Docker Instanz auflösen. Grund hierfür war das ich keine einfache Möglichkeit hatte mir nach einem Neustart die neuen IP Adressen der jeweiligen Docker Container zu holen um dann diese Daten in meine Vhost Configen eintragen zu lassen. Es war also nach jedem Neustart der Container nötig die IP Adressen der jeweiligen Subdomains für die Container einzeln anzupassen. --> Geht gar nicht .. -.-

    Ergo musste etwas neues, effizienteres her und was gibt es nicht schöneres als Networking ... *würg* ... ok also ran an die Bulleten .. ich wills ins Bett :D

    ……

    Vor kurzem musste ich mein geliebtes und bis dato immer funktionierendes Proxy Setup zwischen meinem apache2 Host und meiner Docker Instanz auflösen. Grund hierfür war das ich keine einfache Möglichkeit hatte mir nach einem Neustart die neuen IP Adressen der jeweiligen Docker Container zu holen um dann diese Daten in meine Vhost Configen eintragen zu lassen. Es war also nach jedem Neustart der Container nötig die IP Adressen der jeweiligen Subdomains für die Container einzeln anzupassen. --> Geht gar nicht .. -.-

    Ergo musste etwas neues, effizienteres her und was gibt es nicht schöneres als Networking ... *würg* ... ok also ran an die Bulleten .. ich wills ins Bett :grinning_squinting_face:

    Wir loggen uns per SSH ein und erstellen mit dem Benutzer root (mache ich immer so) im Home Verzeichnis ein neues Verzeichnis für die Daten unseres neuen Containers. Anschließend wechseln wir in unser neues Verzeichnis und erstellen eine neue docker compose YML.

    Code
    cd /home && mkdir nginxproxy && cd nginxproxy && touch docker-compose.yml

    Folgender Inhalt müssen wir in die neue Datei übertragen:

    Code
    nano docker-compose.yml
    Code
    version: '3.8'
    services:
      app:
        image: 'jc21/nginx-proxy-manager:latest'
        restart: unless-stopped
        ports:
          - '80:80' # Public HTTP Port
          - '443:443' # Public HTTPS Port
          - '81:81' # Admin Web Port
        volumes:
          - ./data:/data # <-- findet ihr nach dem Setup unter /home/nginxproxy
          - ./letsencrypt:/etc/letsencrypt # <-- findet ihr nach dem Setup unter /home/nginxproxy
    Alles anzeigen

    Also .. wir erstellen einen neuen Container mit dem Image jc21/nginx-proxy-manager:latest. Dieser Container wird später die Verwaltung des Proxys übernehmen. Da ich an meinem Server mehr wie nur eine IP Adresse habe, war es mir möglich für diesen speziellen Container eine andere IP Adresse zu nutzen und ich haben den jeweiligen Port an die neue IP Adresse gebunden. Wichtig ist hierbei das ihr FALLS ihr schon einen Webserver auf dem Server laufen habt ihr diesen ebenfalls an eine IP Adresse bindet.

    Merke: Das hier geht nur wenn du A) noch keinen Webserver am laufen hast oder B) du eine 2te IP Adresse hast.

    IP Adressen binden könnt ihr den Apache2 zb in der Datei /etc/apache2/ports.conf. Bitte erkundigt euch diesbezüglich nochmal selber.

    Mit einem docker-compose up -d startet ihr nun den neuen Container im Hintergrund. Magieeeee! :kissing_face:

    Wenn alle ready ist loggen wir uns als erstes im Nginx Proxymanager ein mit folgenden Daten: (Diese sind von dem Developer so vorgeben und haben nichts mit einer Grausamkeit meinerseits zu tun :smiling_face_with_sunglasses: bitte unbedingt ändern)

    Code
    Email:    admin@example.com
    Password: changeme

    Bitte bedenkt bevor ihr die jeweiligen Subdomains hier im Manager eintragen wollt das ihr noch unbedingt die DNS Einträge kontrollieren müsst. Eventuelle IP Änderungen solltet ihr hier schon berücksichtigt haben! Bevor wir jetzt einen Host anlegen könnt müssen wir noch für docker ein spezielles, eigenes Netzwerk anlegen und ALLE Container, die über den Proxymanager kommunizieren wollen hinzufügen.

    Also wieder auf die Shell (Mal nebenbei: Hast du gewusst: Es gibt Millionen Codezeilen in der Gemeinschaftsprojekte der Linux Foundation. Zum Vergleich: Windows XP umfasst 45 Millionen Codezeilen.) :

    Code
    docker network create <networkname>

    STOP: Wir erinnern uns an unsere docker-compose.yml welche wir anfangs erstellt haben .. ? Wir öffnen diese und fügen ändern die Datei auf folgendes ab:

    Code
    version: '3.8'
    services:
      app:
        image: 'jc21/nginx-proxy-manager:latest'
        restart: always
        ports:
          - '80:80' # Public HTTP Port
          - '443:443' # Public HTTPS Port
          - '81:81' # Admin Web Port
        volumes:
          - ./data:/data
          - ./letsencrypt:/etc/letsencrypt
        networks:
          - <networkname>
        healthcheck: # Kann man .. muss man nicht .. ;)
          test: ["CMD", "/usr/bin/check-health"]
          interval: 10s
          timeout: 3s
    
    networks:
       <networkname>:
         external: true
    Alles anzeigen

    Was haben wir jetzt geändert? Wir haben unseren Proxymanager in unser neues Netzwerk verbunden und damit quasi den Grundstein dafür geschaffen das der Proxymanager Container mit den anderen noch kommenden Containern kommunizieren kann. Ich gehe einfach mal davon aus das es da bei euch noch mehr Container gibt die ihr verbinden wollt ..

    Dafür würde dann der Befehl

    Code
    docker network connect <networkname> --alias nginx nginx

    ausreichen. Hierbei fügt ihr den bereits vorhandenen Container nginx mit dem neuen Alias (Hostname des Containers) nginx in euer neues Netzwerk ein.

    Legt jetzt einfach eure einzelnen ProxyHosts im Proxymanager an und stellt eure Einstellungen bezüglich SSL ein.

    Ja .. ich denke das waren genau die Schritte die ich gemacht habe .. Also ich wünsche euch viel Erfolg und würde mich freuen wenn ihr bei Fragen oder Problemen einen Beitrag bzw ein Thema hier eröffnet :winking_face:

    :red_heart::red_heart:

    • NGINX
    • proxy
    • container
    • docker
    • etc
    • bösehexenfliegenheutetief

Teilen

  • Vorheriger Eintrag Debian SSH Key Login
  • Änderungsprotokoll
  • PDF

Kategorien

  1. Programmierung 0
  2. Webentwicklung 1
  3. Netzwerk und Sicherheit 2
  4. Systemadministration 4
    1. Betriebssysteme 0
    2. Virtualisierung 0
    3. Cloud Computing 0
    4. Servermanagement 2
  5. Hardware 0
  6. Software Entwicklungstools 0

Rechtliches

Impressum

Datenschutzerklärung