Unzugänglich hinter Traefik Proxy

Ich habe mir eine Reihe von Beiträgen zum Ausführen von Discourse hinter einem Traefik-Proxy angesehen, aber anscheinend fehlt mir immer noch etwas.

Vom Host aus kann ich mit curl die interne IP des Containers abrufen und sehe das Discourse-Setup-Assistenten-HTML zurückgegeben, und Traefik meldet, dass der Dienst verfügbar ist:

Wenn ich jedoch versuche, auf die Domain zuzugreifen, die über Traefik läuft, sehe ich das erwartete HTTPS-Zertifikat, erhalte aber nach mehreren Sekunden einen 504.

Hier ist meine Discourse-Konfiguration:

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"

expose:
  #- "80:80"   # http
  #- "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8

  DISCOURSE_HOSTNAME: 'redacted'
  DISCOURSE_DEVELOPER_EMAILS: 'redacted'

  DISCOURSE_SMTP_ADDRESS: smtp.postmarkapp.com
  DISCOURSE_SMTP_USER_NAME: redacted
  DISCOURSE_SMTP_PASSWORD: redacted
  DISCOURSE_NOTIFICATION_EMAIL: noreply@redacted

## Der Docker-Container ist zustandslos; alle Daten werden in /shared gespeichert
volumes:
  - volume:
      host: /opt/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /opt/discourse/shared/standalone/log/var-log
      guest: /var/log

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

docker_args:
  - "-l traefik.enable=true"
  - "-l traefik.http.routers.discourse.tls=true"
  - "-l traefik.http.routers.discourse.rule=Host(`redacted`)"
  - "-l traefik.http.routers.discourse.entrypoints=websecure"
  - "-l traefik.http.routers.discourse.tls.certresolver=ledns"
  - "-l traefik.http.services.discourse.loadbalancer.server.port=80"
  - "-l traefik.http.services.discourse.loadbalancer.server.scheme=http"

run:
  - exec: echo "Beginning of custom commands"
  - exec: echo "End of custom commands"

Ich habe viele andere Dienste in derselben Traefik-Instanz, die ähnlich auf verschiedenen Hosts konfiguriert sind und alle funktionieren.

In den Discourse Nginx-Zugriffsprotokollen sehe ich die Anfrage, wenn ich die lokale IP mit curl abrufe, aber nicht, wenn ich die Domain mit curl abrufe.

Irgendwelche Vorschläge, was fehlt? Es scheint, als ob es irgendwo zwischen Traefik und Nginx verloren geht.

Ich habe das Problem gefunden. Traefik und Discourse befanden sich in unterschiedlichen Docker-Netzwerken. Das Hinzufügen eines Docker-Flags, um es in dasselbe Netzwerk zu bringen, hat das Problem behoben.

2 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.