Inaccesible detrás de Traefik Proxy

He leído varias publicaciones sobre la ejecución de Discourse detrás de un proxy Traefik, pero desafortunadamente parece que todavía me falta algo.

Desde el host, si hago curl a la IP interna del contenedor, puedo ver el HTML del asistente de configuración de Discourse devuelto y Traefik informa que el servicio está disponible:

Sin embargo, cuando intento conectarme al dominio que pasa por Traefik, puedo ver el certificado HTTPS esperado pero luego obtengo un 504 después de varios segundos.

Aquí está mi configuración de 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

## El contenedor Docker no tiene estado; todos los datos se almacenan en /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"

Tengo muchos otros servicios en la misma instancia de Traefik configurados de manera similar en diferentes hosts y todos funcionan.

En los registros de acceso de Nginx de Discourse, puedo ver la solicitud cuando hago curl a la IP local, pero no cuando hago curl al dominio.

¿Alguna sugerencia sobre lo que falta? Parece que se está perdiendo en algún lugar entre Traefik y nginx.

Encontré el problema. Traefik y Discourse estaban en redes docker diferentes. Añadir una bandera docker para ponerlo en la misma red resolvió el problema.

2 Me gusta

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