Inaccessible derrière Traefik Proxy

J’ai lu plusieurs articles sur l’exécution de Discourse derrière un proxy Traefik, mais malheureusement, il semble qu’il me manque encore quelque chose.

Depuis l’hôte, si j’utilise curl sur l’adresse IP interne du conteneur, je peux voir le HTML de l’assistant de configuration de Discourse renvoyé et Traefik signale que le service est disponible :

Cependant, lorsque j’essaie de me connecter au domaine qui passe par Traefik, je peux voir le certificat HTTPS attendu, mais j’obtiens ensuite une erreur 504 après plusieurs secondes.

Voici ma configuration Discourse :

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

## Le conteneur Docker est sans état ; toutes les données sont stockées dans /shared
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"

J’ai de nombreux autres services dans la même instance Traefik configurés de manière similaire sur différents hôtes et ils fonctionnent tous.

Dans les journaux d’accès Nginx de Discourse, je peux voir la requête lorsque j’utilise curl sur l’adresse IP locale, mais pas lorsque j’utilise curl sur le domaine.

Des suggestions sur ce qui manque ? Il semble que quelque chose se perde entre Traefik et Nginx.

J’ai trouvé le problème. Traefik et Discourse étaient sur des réseaux docker différents. L’ajout d’un indicateur docker pour les mettre sur le même réseau a résolu le problème.

2 « J'aime »

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