Inacessível atrás do Traefik Proxy

Tenho lido vários posts sobre como executar o Discourse por trás de um proxy Traefik, mas infelizmente parece que ainda estou perdendo alguma coisa.

Do host, se eu fizer um curl no IP interno do contêiner, posso ver o HTML do assistente de configuração do Discourse retornado e o Traefik relata que o serviço está disponível:

No entanto, quando tento me conectar ao domínio que passa pelo Traefik, posso ver o certificado https esperado, mas depois recebo um 504 após vários segundos.

Aqui está minha configuração do 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

## O contêiner Docker é stateless; todos os dados são armazenados em /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"

Eu tenho muitos outros serviços na mesma instância do Traefik configurados de forma semelhante em hosts diferentes e eles estão todos funcionando.

Nos logs de acesso do Nginx do Discourse, posso ver a solicitação quando faço um curl no IP local, mas não quando faço um curl no domínio.

Alguma sugestão sobre o que está faltando? Parece que está se perdendo em algum lugar entre o Traefik e o Nginx.

Encontrei o problema. Traefik e Discourse estavam em redes docker diferentes. Adicionar uma flag docker para colocá-lo na mesma rede resolveu o problema.

2 curtidas

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