Inaccessibile dietro Traefik Proxy

Ho letto diversi post sull’esecuzione di Discourse dietro un proxy Traefik, ma sfortunatamente sembra che mi manchi ancora qualcosa.

Dall’host, se faccio una curl all’IP interno del container, posso vedere l’HTML della procedura guidata di configurazione di Discourse restituito e Traefik segnala che il servizio è disponibile:

Tuttavia, quando tento di connettermi al dominio che passa attraverso Traefik, vedo il certificato https previsto ma poi ottengo un 504 dopo diversi secondi.

Ecco la mia configurazione di 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

## Il container Docker è stateless; tutti i dati sono memorizzati in /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"

Ho molti altri servizi nella stessa istanza Traefik configurati in modo simile su host diversi e funzionano tutti.

Nei log di accesso di Nginx di Discourse vedo la richiesta quando faccio una curl all’IP locale, ma non quando faccio una curl al dominio.

Qualsiasi suggerimento su cosa manca? Sembra che si perda da qualche parte tra Traefik e Nginx.

Ho trovato il problema. Traefik e Discourse erano su reti docker diverse. Aggiungere un flag docker per metterlo sulla stessa rete ha risolto il problema.

2 Mi Piace

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