301 Redirect funktioniert nicht nach Bearbeitung der app.yml-Datei und dem erneuten Erstellen der App

Ich bekomme meine alte Domain nicht umgeleitet. Hier ist die vollständige app.yml (angepasst, um persönliche/private Daten zu entfernen).

## Dies ist die All-in-One, eigenständige Discourse Docker-Container-Vorlage
##
## Nach Änderungen an dieser Datei MUSS neu aufgebaut werden
## /var/discourse/launcher rebuild app
##
## SEI *SEHR* VORSICHTIG BEIM BEARBEITEN!
## YAML-DATEIEN SIND SUPER SUPER EMPFINDLICH GEGENÜBER FEHLERN IN LEERZEICHEN ODER AUSRICHTUNG!
## Besuchen Sie http://www.yamllint.com/, um diese Datei bei Bedarf zu validieren

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Kommentieren Sie diese beiden Zeilen aus, wenn Sie Lets Encrypt (https) hinzufügen möchten
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"
 
## Welche TCP/IP-Ports soll dieser Container offenlegen?
## Wenn Sie Discourse einen Port mit einem anderen Webserver wie Apache oder nginx teilen möchten,
## siehe https://meta.discourse.org/t/17247 für Details
expose:
  - "80:80"   # http
  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Setzen Sie db_shared_buffers auf maximal 25 % des Gesamtspeichers.
  ## Wird beim Bootstrap automatisch basierend auf dem erkannten RAM gesetzt, oder Sie können es überschreiben
  db_shared_buffers: "128MB"
  
  ## Kann die Sortierleistung verbessern, erhöht aber den Speicherverbrauch pro Verbindung
  #db_work_mem: "40MB"
  
  ## Welche Git-Revision soll dieser Container verwenden? (Standard: tests-passed)
  #version: tests-passed

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## Wie viele gleichzeitige Webanfragen werden unterstützt? Hängt von Speicher und CPU-Kernen ab.
  ## Wird beim Bootstrap automatisch basierend auf den erkannten CPUs gesetzt, oder Sie können es überschreiben
  UNICORN_WORKERS: 2

  ## TODO: Der Domainname, auf den diese Discourse-Instanz reagiert
  DISCOURSE_HOSTNAME: old-domain.com
  
  ## Kommentieren Sie dies aus, wenn Sie möchten, dass der Container mit dem gleichen
  ## Hostnamen (-h-Option) wie oben angegeben gestartet wird (Standard: "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Liste der durch Komma getrennten E-Mail-Adressen, die bei der ersten Registrierung zu Admin und Entwickler werden
  ## Beispiel: 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'admin@old-domain.com'

  ## TODO: Der SMTP-Mailserver, der zur Validierung neuer Konten und zum Senden von Benachrichtigungen verwendet wird
  DISCOURSE_SMTP_ADDRESS: smtp.sparkpostmail.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: SMTP_Injection
  DISCOURSE_SMTP_PASSWORD: "xxxxxxxxxxxxxxxxxxxx"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, Standard: true)
  
  ## Wenn Sie die Lets-Encrypt-Vorlage hinzugefügt haben, kommentieren Sie unten aus, um ein kostenloses SSL-Zertifikat zu erhalten
  LETSENCRYPT_ACCOUNT_EMAIL: tempemail@temp.com

  ## Die CDN-Adresse für diese Discourse-Instanz (konfiguriert zum Abrufen)
  ## siehe https://meta.discourse.org/t/14857 für Details
  #DISCOURSE_CDN_URL: //discourse-cdn.example.com

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

## Plugins gehen hier
## siehe https://meta.discourse.org/t/19157 für Details
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/team-melbourne-rgsoc2015/discourse-adplugin.git
         
  after_web_config:
    - replace:
        filename: /etc/nginx/nginx.conf
        from: /sendfile.+on;/
        to: |
          server_names_hash_bucket_size 64;
          sendfile on;
    - file:
        path: /etc/nginx/conf.d/discourse_redirect_1.conf
        contents: |
          server {
            listen 80;
            server_name old-domain.com;
            return 301 $scheme://new-domain.com$request_uri;
          }

 after_ssl:
    - replace:
        filename: "/etc/runit/1.d/letsencrypt"
        from: /--keylength/
        to: "-d old-domain.com -d new-domain.com --keylength"

    
## Beliebige benutzerdefinierte Befehle, die nach dem Build ausgeführt werden sollen
run:
  - exec: echo "Beginning of custom commands"
  ## Wenn Sie die 'From'-E-Mail-Adresse für Ihre erste Registrierung festlegen möchten, kommentieren Sie dies aus und ändern Sie:
  ## Nachdem Sie die erste Anmelde-E-Mail erhalten haben, kommentieren Sie die Zeile erneut aus. Sie muss nur einmal ausgeführt werden.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "End of custom commands"

Ich habe es nach einem erfolgreichen Neuaufbau überprüft. Es lädt einfach, ohne dass eine Umleitung erfolgt. Was ist falsch mit dem Code?

Hinweis: Die Datei “discourse_redirect_1.conf” wurde im Voraus nicht erstellt. Sollte sie das?

Ich denke, dass du den Abschnitt nach der Web-Konfiguration entfernen kannst. Ich bin überzeugt, dass die Weiterleitung auch ohne ihn funktioniert.

Ich vermute, dass es seit der Zeit, als dieser Code funktionierte, Änderungen an der nginx-Konfiguration gab, und dass nun alles an den Discourse-Hostnamen weitergeleitet wird.