Sind zwei nginx proxy auf derselben Maschine/IP möglich?



  • ????
    nginx, der wohl etablierteste proxy ist nicht dafuer konzipiert verschiedene upstreams zu proxy'n....
    ja ne, is klar



  • @Fragender sagte in Sind zwei nginx proxy auf derselben Maschine/IP möglich?:

    @firefly sagte in Sind zwei nginx proxy auf derselben Maschine/IP möglich?:

    @Fragender sagte in Sind zwei nginx proxy auf derselben Maschine/IP möglich?:

    @Cardiac jetzt habe ich schon nginx gelernt, dann müsste ich auch noch traefik lernen 😕

    Du liest wohl echt immer nur die hälfte oder? Cardiac hat nicht nur traefik vorgeschlagen...
    Sondern dass du auf dem Host einen reverse Proxy laufen lässt der dann die anfragen an die container weiterleitet

    Problem ist halt, dass traefik "von Haus aus" Optionen dafür anbietet, aber nginx nich.

    Wenn du dich auf "container-aware" bzw. "autodiscover" beziehst dann ja, aber brauchst du das wirklich?
    Und wenn ja, dann musst du halt in den sauren apfel beißen und dich mit traefik auseinander setzen.
    Ich denke dein Problem ist, dass du von dem ganzen system zu wenig Ahnung hast aber scheinbar nicht willig bist dich mit den Informationen, welche dir andere liefern, komplett auseinander zu setzen.

    Soweit ich das verstehe, und cardiac schon gesagt hat, brauchst du auch keine mehrere reverse proxy, da reicht genau einer.
    Der kann entweder auf dem container Host laufen oder auch selbst in einem container.
    Wenn der reverse proxy in einem container läuft, dann werden nur seine Ports aus dem container exportiert. Die ports der dienste in den anderen container werden nicht exportiert.
    Sondern der reverse proxy kommuniziert mit den diensten über das interne container netzwerk.

    Mit nginx kannst du das genau so machen. Nur musst du da dann jedes mal "von hand" die konfiguration anpassen, wenn ein neuer dienst über den Proxy erreichbar sein soll.
    Bei traefik würde das "automatisch" passieren aufgrund der autodiscover funktion (laut dieser Beschreibung https://doc.traefik.io/traefik/getting-started/quick-start/)



  • @Cardiac sagte in Sind zwei nginx proxy auf derselben Maschine/IP möglich?:

    nginx, der wohl etablierteste proxy ist nicht dafuer konzipiert verschiedene upstreams zu proxy'n

    Ich habe geschrieben "keine Optionen dafür anbietet", und dabei bleibe ich auch.



  • @Fragender sagte in Sind zwei nginx proxy auf derselben Maschine/IP möglich?:

    @Cardiac sagte in Sind zwei nginx proxy auf derselben Maschine/IP möglich?:

    nginx, der wohl etablierteste proxy ist nicht dafuer konzipiert verschiedene upstreams zu proxy'n

    Ich habe geschrieben "keine Optionen dafür anbietet", und dabei bleibe ich auch.

    Öhm für was denn genau??? Bis jetzt lese ich von dir nur irgendwelche schwammigen Behauptungen, dass nginx was nicht könnte, ohne das du es genauer beschreibst



  • dann bleib du mal dabei, ist mir zu doof.



  • ne, ihr versteht mich beide falsch. Ich verwende doch den Nginx Proxy Manager, und dessen Oberfläche bietet keine Option dafür an. Ich müsste dafür also eigene Konfigurationsdateien anlegen: https://nginxproxymanager.com/advanced-config/#custom-nginx-configurations und würde damit das Prinzip des Managers quasi umgehen ...

    Wenn traefik das "von Haus aus" kann, ohne manuell in die interne Konfiguration einzugreifen, sollte man immer das nehmen, was es schon gibt ... also nicht gegen DRY, KISS und SOLID verstoßen.



  • @Fragender sagte in Sind zwei nginx proxy auf derselben Maschine/IP möglich?:

    ne, ihr versteht mich beide falsch. Ich verwende doch den Nginx Proxy Manager, und dessen Oberfläche bietet keine Option dafür an. Ich müsste dafür also eigene Konfigurationsdateien anlegen: https://nginxproxymanager.com/advanced-config/#custom-nginx-configurations und würde damit das Prinzip des Managers quasi umgehen ...

    Öhm das ist ein third party tool das nicht von den nginx entwickler betreut wird.
    Alle deine Aussagen klangen so als ob du dich auf nginx direkt beziehst....
    nginx selbst kann das leisten was du benötigst es ist nicht die schuld von nginx wenn das third party tool kein möglichkeit bietet eine passende nginx config anzulegen.



  • ja eben, es ist doch unsauber, manuell in die Konfigs einzugreifen... Wenn traefik das kann, dann nehm' ich es.

    Aber andererseits, don't change a running system. 😁



  • Ich hab umgestellt auf traefik.

    Könntest du einmal schauen, ob das so richtig wäre? Ist nur ein Beispiel.

    version: '3'
    
    services:
      reverse-proxy:
        image: "traefik:v2.10"
        container_name: "traefik"
        command:
          #- "--log.level=DEBUG"
          - "--api.insecure=true"
          - "--providers.docker=true"
          - "--providers.docker.exposedbydefault=false"
          - "--entrypoints.websecure.address=:443"
          - "--certificatesresolvers.myresolver.acme.tlschallenge=true"
          #- "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
          - "--certificatesresolvers.myresolver.acme.email=email@mail.com"
          - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
        ports:
          #- "80:80"
          - "443:443"
          - "8080:8080"
        volumes:
          - "./letsencrypt:/letsencrypt"
          - "/var/run/docker.sock:/var/run/docker.sock:ro"
      website:
        image: httpd:2.4
        volumes:
          - ./website1/:/usr/local/apache2/htdocs/
        labels:
          - "traefik.enable=true"
          - "traefik.http.routers.website.rule=Host(`website.domain.com`)"
          - "traefik.http.services.website.loadbalancer.server.port=80"
          - "traefik.http.routers.website.entrypoints=websecure"
          - "traefik.http.routers.website.tls.certresolver=myresolver"
          - "traefik.http.routers.website.middlewares=website-auth"
          - "traefik.http.middlewares.mychain.chain.middlewares=myratelimit,myauth"
          - "traefik.http.middlewares.myratelimit.ratelimit.average=6"
          - "traefik.http.middlewares.myratelimit.ratelimit.period=1m"
          - "traefik.http.middlewares.myratelimit.ratelimit.burst=1"
          - "traefik.http.middlewares.myauth.basicauth.users=user1:..."
    

    Orientiert hatte ich mich hier dran: https://dev.to/karvounis/advanced-traefik-configuration-tutorial-tls-dashboard-ping-metrics-authentication-and-more-4doh

    Nach mehr als 6 Versuchen auf basicauth sollte abgebrochen werden.

    Kann ich die Bezeichnungen myauth.basicauth und myratelimit und mychain auch für mehrere Services verwenden, oder braucht jeder Service ein eigenes label?

    Danke schon mal.



  • Haha, es hat funktioniert ...

        labels:
          - "traefik.enable=true"
          - "traefik.http.routers.whoami.rule=Host(`whoami.my.domain`)"
          - "traefik.http.services.whoami.loadbalancer.server.port=80"
          - "traefik.http.routers.whoami.entrypoints=websecure"
          - "traefik.http.routers.whoami.tls.certresolver=myresolver"
          - "traefik.http.routers.whoami.middlewares=mychain"
          - "traefik.http.middlewares.mychain.chain.middlewares=myratelimit,myauth"
          - "traefik.http.middlewares.myratelimit.ratelimit.average=6"
          - "traefik.http.middlewares.myratelimit.ratelimit.period=1m"
          - "traefik.http.middlewares.myratelimit.ratelimit.burst=50"
          - "traefik.http.middlewares.myauth.basicauth.users=user1:$...,user2:$..."
    
    

    Nun kann ich mychain auch mit anderen Services verwenden ...


Anmelden zum Antworten