Erste Schritte
Sie benötigen:
- Eine Discourse-Instanz mit Zugriff auf app.yml
- Ein AWS-Konto
Benennungskonzept
Es gibt viele Stellen, an denen Fehler passieren können. Die Verwendung einer Benennungskonvention, die für Sie und möglicherweise andere sinnvoll ist, hilft Ihnen bei der Fehlerbehebung, insbesondere wenn Sie mehrere Discourse-Instanzen konfigurieren.
- IAM-Benutzer: your-iam-user
- Richtlinie: s3-discourse-policy-your-iam-user
- Sicherungs-Bucket: yourdomain-subdomain-backups
- Upload-Bucket: yourdomain-subdomain-uploads
- CDN-Verteilungen: cdn-yourdomain-subdomain und s3-yourdomain-subdomain-uploads
Optional: Konfigurationsprozess-Bucket: a-origin-config-bucket
AWS-Konfiguration
Verwenden Sie die Standardeinstellungen auf den AWS-Konfigurationsseiten, es sei denn, es wird ausdrücklich etwas anderes angeordnet.
S3-Namen, Namen, Namen
- Discourse-Instanz-Domain: subdomain.yourdomain.tld (subdomain.yourdomain.tld einschließlich www.yourdomain.tld)
- IAM-Benutzer: yourdomain-subdomain (yourdomain-discourse, yourdomain-forum oder Discourse in der Apex-/Root-Domain: yourdomain-tld-www)
- Richtlinie für IAM-Benutzer: s3-discourse-policy-yourdomain-subdomain
- Upload-Bucket: yourdomain-subdomain-uploads Hinweis: Vergessen Sie nicht, bei „Jeder (öffentlicher Zugriff)“ unter Bucket > Berechtigungen: Zugriffskontrollliste (ACL) – Zugriffskontrollliste (ACL) – Berechtigter auf „Lesen“ zu stellen.
- Sicherungs-Bucket: yourdomain-subdomain-backups
- CDN-Verteilungen: cdn-yourdomain-subdomain und s3-yourdomain-subdomain-uploads
- Konfigurationsprozess-Bucket: a-origin-config-bucket
IAM-Benutzer
- Gehen Sie zu IAM > Benutzer > Wählen Sie „Benutzer erstellen“
- IAM > Benutzer > Benutzer erstellen > Benutzerdetails angeben > Benutzerdetails > Benutzername > Namen eingeben, z. B. your-iam-user > „Weiter“ auswählen
- IAM > Benutzer > Benutzer erstellen > Berechtigungen festlegen > Berechtigungsoptionen > „Richtlinien direkt anhängen“ auswählen > „Richtlinie erstellen“ auswählen > Seite „Richtlinie erstellen“ wird geöffnet (Alternativ kann die Richtlinie zuerst unter Richtlinien erstellt und dann beim Erstellen des Benutzers unter „Berechtigungspolicies“ ausgewählt werden.)
- IAM > Benutzer > Benutzer erstellen > Berechtigungen festlegen > Berechtigungspolicies > Nach Typ im Dropdown-Menü filtern > „Vom Kunden verwaltet“ auswählen > Die neu erstellte Richtlinie auswählen > „Weiter“ auswählen > „Benutzer erstellen“ auswählen
- IAM > Benutzer > your-iam-user > Sicherheitsanmeldedaten > Zugriffsschlüssel > „Zugriffsschlüssel erstellen“ auswählen
- IAM > Benutzer > your-iam-user > Zugriffsschlüssel erstellen > Best Practices und Alternativen für Zugriffsschlüssel > „Anderes“ auswählen > „Weiter“ auswählen
- IAM > Benutzer > your-iam-user > Zugriffsschlüssel erstellen > Beschreibungstags festlegen > „Zugriffsschlüssel erstellen“ auswählen
- IAM > Benutzer > your-iam-user > Zugriffsschlüssel erstellen > Zugriffsschlüssel abrufen > Zugriffsschlüssel und geheimen Zugriffsschlüssel sicher speichern, um sie in Discourse app.yml zu verwenden > „Fertig“ auswählen
Richtlinien
- Bearbeiten Sie s3-discourse-policy-your-iam-user.txt mit Ihrem IAM-Benutzernamen und den Bucket-Namen.
- Gehen Sie zu IAM > Richtlinien > Richtlinie erstellen
- IAM > Richtlinien > Richtlinie erstellen > Berechtigungen angeben > Richtlinien-Editor > Wählen Sie „JSON“ im Richtlinien-Editor > Kopieren Sie die Richtlinie aus s3-discourse-policy-your-iam-user.txt und fügen Sie sie in den JSON-Editor ein, wobei Sie das vorhandene JSON überschreiben > „Weiter“ auswählen
- IAM > Richtlinien > Richtlinie erstellen > Überprüfen und erstellen > Richtlinien-Details > Richtlinienname > Richtlinienname eingeben, z. B. s3-discourse-policy-your-iam-user > „Weiter“ auswählen
- Gehen Sie zu IAM-Benutzer: 4. IAM > Benutzer > Benutzer erstellen, um den Prozess zum Erstellen des Benutzers fortzusetzen
Amazon S3-Buckets
Erstellen und konfigurieren Sie den Sicherungs-Bucket, den Upload-Bucket und den optionalen, aber nützlichen Konfigurationsprozess-Bucket.
Den Sicherungs-Bucket erstellen yourdomain-subdomain-backups
- Gehen Sie zu Amazon S3 Buckets > Wählen Sie „Bucket erstellen“
- Amazon S3 > Buckets > Bucket erstellen > Allgemeine Konfiguration > Bestätigen Sie die Auswahl „Allgemeiner Zweck“
- Amazon S3 > Buckets > Bucket erstellen > Allgemeine Konfiguration > Bucket-Name > Sicherungs-Bucket-Namen eingeben, z. B. yourdomain-subdomain-backups
- Amazon S3 > Buckets > Bucket erstellen > Allgemeine Konfiguration > Bestätigen Sie die Auswahl „ACLs deaktiviert (empfohlen)“
- Amazon S3 > Buckets > Bucket erstellen > Einstellungen zum Blockieren öffentlichen Zugriffs für diesen Bucket > Deaktivieren Sie „Alle öffentlichen Zugriffe blockieren“ und aktivieren Sie dann „Öffentlichen Zugriff auf Buckets und Objekte, die über neue öffentliche Bucket- oder Access-Point-Richtlinien gewährt werden, blockieren“ und „Öffentlichen und länderübergreifenden Zugriff auf Buckets und Objekte über beliebige öffentliche Bucket- oder Access-Point-Richtlinien blockieren“
- Amazon S3 > Buckets > Bucket erstellen > Einstellungen zum Blockieren öffentlichen Zugriffs für diesen Bucket > Das Deaktivieren des Blockierens aller öffentlichen Zugriffe kann dazu führen, dass dieser Bucket und die darin enthaltenen Objekte öffentlich werden > Wählen Sie „Ich bestätige, dass die aktuellen Einstellungen dazu führen können, dass dieser Bucket und die darin enthaltenen Objekte öffentlich werden.“
- Amazon S3 > Buckets > Bucket erstellen > Bucket-Versionierung > Bucket-Versionierung > Wählen Sie „Aktivieren“ Info: Die Bucket-Versionierung ist für „Lebenszyklusregeln“ erforderlich
- Amazon S3 > Buckets > Bucket erstellen > Wählen Sie „Bucket erstellen“
Konfiguration der Lebenszyklusregeln
Regel zur Aufbewahrung von Sicherungen
- Amazon S3 > Buckets > Wählen Sie den neu erstellten Bucket, z. B. yourdomain-subdomain-backups
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Wählen Sie „Lebenszyklusregel erstellen“
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Name der Lebenszyklusregel > Regelname eingeben, z. B. backup retention
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Gültigkeitsbereich der Regel auswählen > Wählen Sie „Auf alle Objekte im Bucket anwenden“
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Gültigkeitsbereich der Regel auswählen > Auf alle Objekte im Bucket anwenden > Wählen Sie „Ich bestätige, dass diese Regel auf alle Objekte im Bucket angewendet wird.“
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Aktionen der Lebenszyklusregel > Wählen Sie „Nicht aktuelle Versionen von Objekten zwischen Speicherklassen übertragen“, „Aktuelle Versionen von Objekten verfallen lassen“ und „Nicht aktuelle Versionen von Objekten endgültig löschen“
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Aktionen der Lebenszyklusregel > Übertragungen werden pro Anfrage berechnet > Wählen Sie „Ich bestätige, dass diese Lebenszyklusregel Übertragungskosten pro Anfrage verursacht.“
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Nicht aktuelle Versionen von Objekten zwischen Speicherklassen übertragen > Speicherklassen-Übertragungen auswählen > Wählen Sie „Glacier Instant Retrieval“
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Nicht aktuelle Versionen von Objekten zwischen Speicherklassen übertragen > Tage, nachdem Objekte nicht mehr aktuell sind > Geben Sie „1“ ein
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Aktuelle Versionen von Objekten verfallen lassen > Tage nach der Objekterstellung > Geben Sie „7“ oder 15 oder 30 oder ??? ein
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Nicht aktuelle Versionen von Objekten endgültig löschen > Tage, nachdem Objekte nicht mehr aktuell sind > Geben Sie „91“ ein
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Bestätigen Sie, dass „Überprüfung der Übertragungs- und Ablaufaktionen“ korrekt ist > Wählen Sie „Regel erstellen“
Bereinigungsregel
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Wählen Sie „Lebenszyklusregel erstellen“
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Name der Lebenszyklusregel > Regelnamen cleanup eingeben
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Gültigkeitsbereich der Regel auswählen > Wählen Sie „Auf alle Objekte im Bucket anwenden“
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Gültigkeitsbereich der Regel auswählen > Auf alle Objekte im Bucket anwenden > Wählen Sie „Ich bestätige, dass diese Regel auf alle Objekte im Bucket angewendet wird.“
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Aktionen der Lebenszyklusregel > Wählen Sie „Nicht aktuelle Versionen von Objekten endgültig löschen“ und „Abgelaufene Objektlöschmarkierungen oder unvollständige multipart-Uploads löschen“
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Nicht aktuelle Versionen von Objekten endgültig löschen > Tage, nachdem Objekte nicht mehr aktuell sind > Geben Sie „92“ ein
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Nicht aktuelle Versionen von Objekten endgültig löschen > Abgelaufene Objektlöschmarkierungen oder unvollständige multipart-Uploads löschen > Abgelaufene Objektlöschmarkierungen > Wählen Sie „Abgelaufene Objektlöschmarkierungen löschen“
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Nicht aktuelle Versionen von Objekten endgültig löschen > Abgelaufene Objektlöschmarkierungen oder unvollständige multipart-Uploads löschen > Unvollständige multipart-Uploads > Wählen Sie „Unvollständige multipart-Uploads löschen“
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Nicht aktuelle Versionen von Objekten endgültig löschen > Abgelaufene Objektlöschmarkierungen oder unvollständige multipart-Uploads löschen > Unvollständige multipart-Uploads löschen > Anzahl der Tage > Geben Sie „3“ oder ??? ein
- Amazon S3 > Buckets > yourdomain-subdomain-backups > Verwaltung > Lebenszykluskonfiguration > Bestätigen Sie, dass „Überprüfung der Übertragungs- und Ablaufaktionen“ korrekt ist > Wählen Sie „Regel erstellen“
Den Upload-Bucket erstellen yourdomain-subdomain-uploads
- Gehen Sie zu Amazon S3 > Buckets > Wählen Sie „Bucket erstellen“
- Amazon S3 > Buckets > Bucket erstellen > Allgemeine Konfiguration > Bestätigen Sie die Auswahl „Allgemeiner Zweck“
- Amazon S3 > Buckets > Bucket erstellen > Allgemeine Konfiguration > Bucket-Name > Upload-Bucket-Namen eingeben, z. B. yourdomain-subdomain-uploads
- Amazon S3 > Buckets > Bucket erstellen > Allgemeine Konfiguration > Wählen Sie „ACLs aktiviert“
- Amazon S3 > Buckets > Bucket erstellen > Einstellungen zum Blockieren öffentlichen Zugriffs für diesen Bucket > Deaktivieren Sie „Alle öffentlichen Zugriffe blockieren“ und aktivieren Sie dann „Öffentlichen Zugriff auf Buckets und Objekte, die über neue öffentliche Bucket- oder Access-Point-Richtlinien gewährt werden, blockieren“ und „Öffentlichen und länderübergreifenden Zugriff auf Buckets und Objekte über beliebige öffentliche Bucket- oder Access-Point-Richtlinien blockieren“
- Amazon S3 > Buckets > Bucket erstellen > Einstellungen zum Blockieren öffentlichen Zugriffs für diesen Bucket > Das Deaktivieren des Blockierens aller öffentlichen Zugriffe kann dazu führen, dass dieser Bucket und die darin enthaltenen Objekte öffentlich werden > Wählen Sie „Ich bestätige, dass die aktuellen Einstellungen dazu führen können, dass dieser Bucket und die darin enthaltenen Objekte öffentlich werden.“
- Amazon S3 > Buckets > Bucket erstellen > Wählen Sie „Bucket erstellen“
- Amazon S3 > Buckets > Buckets-Bildschirm > Wählen Sie den neu erstellten Bucket, z. B. yourdomain-subdomain-uploads
Kehren Sie zurück, um Schritt 9 nach der Erstellung der Verteilung #2 durchzuführen - Amazon S3 > Buckets > yourdomain-subdomain-uploads > Berechtigungen > Bucket-Richtlinie > Bearbeiten auswählen > JSON aus Verteilung #2 erstellen 11. CloudFront > Verteilungen > Verteilungs-ID > Ursprung bearbeiten > Zugriffskontrolle für Ursprung > Wählen Sie „Änderungen speichern“
- Amazon S3 > Buckets > yourdomain-subdomain-uploads > Berechtigungen > Zugriffskontrollliste (ACL) > Bearbeiten auswählen > Jeder (öffentlicher Zugriff) > Wählen Sie „Lesen“ > Wenn Sie der Gruppe „Jeder“ oder „Authentifizierte Benutzer“ Zugriff gewähren, kann jeder auf der Welt auf die Objekte in diesem Bucket zugreifen. Wählen Sie „Ich verstehe die Auswirkungen dieser Änderungen auf meine Objekte und Buckets.“ > Wählen Sie „Änderungen speichern“
Einen Konfigurationsprozess-Bucket erstellen a-origin-config-bucket
Erstellen Sie einen Bucket, der während des Konfigurationsprozesses der Verteilung #1 verwendet wird. Name und Konfiguration sind unwichtig, da der Bucket nur vorübergehend als initialer Ursprung verwendet wird, der während des Konfigurationsprozesses gelöscht wird.
1. Gehen Sie zu Amazon S3 > Buckets > Wählen Sie „Bucket erstellen“
2. Amazon S3 > Buckets > Bucket erstellen > Allgemeine Konfiguration > Bestätigen Sie die Auswahl „Allgemeiner Zweck“
3. Amazon S3 > Buckets > Bucket erstellen > Allgemeine Konfiguration > Bucket-Name > Upload-Bucket-Namen eingeben, z. B. a-origin-config-bucket
4. Wechseln Sie durch die Konfigurationsseiten und wählen Sie „Bucket erstellen“
CloudFront-Verteilungen
Erstellen Sie zwei AWS S3 CloudFront-Verteilungen. Eine zur Bereitstellung von Website-Assets und die zweite zur Bereitstellung von Upload-Bucket-Assets.
Verteilung #1 erstellen
Verteilung #1
DISCOURSE_CDN_URL
Verteilungsname: cdn-yourdomain-subdomain
Ursprung: subdomain.yourdomain.tld
Verteilungsdomänenname (Cloudfront-URL): AWS-assigned.cloudfront.net
Alternative Domänennamen: discourse-cdn.yourdomain.tld
- Gehen Sie zu CloudFront > Verteilungen > Wählen Sie „Erstellen“
- CloudFront > Verteilungen > Verteilung erstellen > Einen Plan auswählen > Wählen Sie „Pay as you go“ > Wählen Sie „Weiter“
- CloudFront > Verteilungen > Verteilung erstellen > Loslegen > Verteilungsoptionen > Verteilungsname > Verteilungsname eingeben, z. B. cdn-yourdomain-subdomain
- CloudFront > Verteilungen > Verteilung erstellen > Loslegen > Verteilungsoptionen > Beschreibung – optional > Geben Sie „cdn-yourdomain-subdomain“ ein (Optional, aber hilfreich für die Sichtbarkeit)
- CloudFront > Verteilungen > Verteilung erstellen > Loslegen > Verteilungsoptionen > Verteilungstyp > Bestätigen Sie die Auswahl „Einzelne Website oder App“ > Wählen Sie „Weiter“
- CloudFront > Verteilungen > Verteilung erstellen > Ursprung angeben > Ursprungstyp > Wählen Sie „Anderes“ Verweisen Sie über eine öffentlich auflösbare URL auf einen beliebigen AWS- oder Nicht-AWS-Ursprung.
- CloudFront > Verteilungen > Verteilung erstellen > Ursprung angeben > Ursprung > Benutzerdefinierter Ursprung > Domain eingeben, z. B. subdomain.yourdomain.tld
- CloudFront > Verteilungen > Verteilung erstellen > Ursprung angeben > Einstellungen > Caching-Einstellungen > Wählen Sie „Caching-Einstellungen anpassen“
- CloudFront > Verteilungen > Verteilung erstellen > Ursprung angeben > Einstellungen > Caching-Einstellungen > Caching-Richtlinie > Wählen Sie im Dropdown-Menü „CachingOptimized“ > Wählen Sie „Weiter“
- CloudFront > Verteilungen > Verteilung erstellen > Sicherheit aktivieren > Treffen Sie Ihre Auswahl – für diese Anleitung > Wählen Sie „Sicherheitsmaßnahmen nicht aktivieren“ > Wählen Sie „Weiter“
- CloudFront > Verteilungen > Verteilung erstellen > Überprüfen und erstellen > Wählen Sie „Verteilung erstellen“
Bei Verwendung einer markenbezogenen CDN-URL → Schritt 12 - CloudFront > Verteilungen > Verteilungs-ID > Alternative Domänennamen > Wählen Sie „Domain hinzufügen“
- CloudFront > Verteilungen > Verteilungs-ID > Alternative Domänennamen > Domain hinzufügen > Domänen konfigurieren > Domänen > Zu bedienende Domänen > Geben Sie die DISCOURSE_CDN_URL ein, z. B. discourse-cdn.yourdomain.tld > Wählen Sie „Weiter“
Unvollständig: Alternative Domänennamen: discourse-cdn.yourdomain.tld
Verteilung #2 erstellen
Verteilung #2
DISCOURSE_S3_CDN_URL
Verteilungsname: s3-yourdomain-subdomain-uploads
Ursprung: yourdomain-subdomain-uploads
Verteilungsdomänenname (Cloudfront-URL: AWS-assigned.cloudfront.net
Alternative Domänennamen: s3-cdn.yourdomain.tld
- CloudFront > Verteilungen > Verteilung erstellen
- CloudFront > Verteilungen > Verteilung erstellen > Einen Plan auswählen > Wählen Sie „Pay as you go“ > Wählen Sie „Weiter“
- CloudFront > Verteilungen > Verteilung erstellen > Loslegen > Verteilungsoptionen > Verteilungsname > Verteilungsname eingeben, z. B. s3-yourdomain-subdomain-uploads
- CloudFront > Verteilungen > Verteilung erstellen > Loslegen > Verteilungsoptionen > Beschreibung – optional > Geben Sie „s3-yourdomain-subdomain-uploads“ ein (Optional, aber hilfreich für die Sichtbarkeit)
- CloudFront > Verteilungen > Verteilung erstellen > Loslegen > Verteilungsoptionen > Verteilungstyp > Bestätigen Sie die Auswahl „Einzelne Website oder App“ > Wählen Sie „Weiter“
- CloudFront > Verteilungen > Verteilung erstellen > Ursprung angeben > Ursprungstyp > Bestätigen Sie die Auswahl „Amazon S3“
- CloudFront > Verteilungen > Verteilung erstellen > Ursprung angeben > Ursprung > S3-Ursprung > Wählen Sie „S3 durchsuchen“ > Wählen Sie den Upload-Bucket „yourdomain-subdomain-uploads“ > Wählen Sie „Auswählen“ > Wählen Sie „Weiter“
- CloudFront > Verteilungen > Verteilung erstellen > Sicherheit aktivieren > Treffen Sie Ihre Auswahl – für diese Anleitung > Wählen Sie „Sicherheitsmaßnahmen nicht aktivieren“ > Wählen Sie „Weiter“
- CloudFront > Verteilungen > Verteilung erstellen > Überprüfen und erstellen > Bestätigen Sie, dass „Überprüfen und erstellen: korrekt ist“ > Wählen Sie „Verteilung erstellen“ → Die neu erstellte Verteilungsinformationsseite sollte sich in CloudFront > Verteilungen > Verteilungs-ID öffnen
- CloudFront > Verteilungen > Verteilungs-ID > Ursprünge > Wählen Sie den Ursprung > Wählen Sie „Bearbeiten“
- CloudFront > Verteilungen > Verteilungs-ID > Ursprung bearbeiten > Zugriffskontrolle für Ursprung > ! Sie müssen den Zugriff auf CloudFront mit dieser Richtlinie zulassen… > Wählen Sie „Richtlinie kopieren“ > Gehen Sie zu Upload-Bucket erstellen 9. Amazon S3 > Buckets > yourdomain-subdomain-uploads > Berechtigungen > Bucket-Richtlinie
Unvollständig: Alternative Domänennamen: s3-cdn.yourdomain.tld
Discourse-Administrator
Aktuell für Discourse-Version: 2025.12.0-latest
Führen Sie diese Änderungen in der Discourse-Admin-Oberfläche durch
Sicherungseinstellungen /admin/backups/settings
- Maximale Anzahl von Sicherungen > Geben Sie die Anzahl der lokal zu speichernden Sicherungen ein
- Sicherung mit Uploads > Wählen Sie „Uploads in geplante Sicherungen einbeziehen. Wenn dies deaktiviert ist, wird nur die Datenbank gesichert.“
S3-Einstellungen /admin/site_settings/category/all_results?filter=S3
- S3 verwendet CDN-URL für alle Uploads > Wählen Sie „CDN-URL für alle auf S3 hochgeladenen Dateien verwenden, nicht nur für Bilder.“ (Discourse wird standardmäßig nicht ausgewählt geliefert)
Konfiguration bearbeiten (app.yml) nicht markenbezogene URLs
Bearbeiten Sie die app.yml und nehmen Sie die unten aufgeführten Änderungen für markenbezogene oder nicht markenbezogene Cloudfront-URLs vor.
Discourse nicht markenbezogene URLs
Verwenden Sie dies für nicht markenbezogene Cloudfront-Verteilungen. Ihre DISCOURSE_S3_REGION kann abweichen.
DISCOURSE_CDN_URL: https://amazonassigned.cloudfront.net
S3-Speicherkonfiguration (nicht markenbezogen)
## S3-Speicherkonfiguration
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: us-east-1
DISCOURSE_S3_ACCESS_KEY_ID: key obfuscated
DISCOURSE_S3_SECRET_ACCESS_KEY: key obfuscated
DISCOURSE_S3_CDN_URL: https://amazonassigned.cloudfront.net
DISCOURSE_S3_BUCKET: your-bucket-name-uploads
DISCOURSE_S3_BACKUP_BUCKET: your-bucket-name-backups
DISCOURSE_BACKUP_LOCATION: s3
Discourse markenbezogene URLs
DNS-Konfiguration
Wenn Sie bevorzugt URLs auf Basis von yourdomain.com für die CDNs verwenden möchten, müssen Sie einige DNS-Änderungen vornehmen und Ihre CDN-URLs anpassen.
Tipp: Vergessen Sie nicht, discourse-cdn.yourdomain.com und s3-cdn.yourdomain.com als Domänenname in „Alternative Domänennamen“ für die jeweiligen Cloudfront-Verteilungen hinzuzufügen.
DNS-Konfiguration, wenn Sie markenbezogene Cloudfront-Verteilungen auf Domänenebene verwenden möchten.
DISCOURSE_CDN_URL
Bestehender Datensatz: A discourseinstance.yourdomain.com Instanz-IP Hinweis: Dies ist die IP der vorhandenen Discourse-Installation.
Neuer Datensatz: A discourse-cdn-cloudfront.yourdomain.com Instanz-IP
Neuer Datensatz: CNAME discourse-cdn.yourdomain.com -> amazonassigned.cloudfront.net
DISCOURSE_S3_CDN_URL
Neuer Datensatz: CNAME s3-cdn-cloudfront.yourdomain.com -> amazonassigned.cloudfront.net
Neuer Datensatz: CNAME s3-cdn.yourdomain.com -> s3-cdn-cloudfront.yourdomain.com
Konfiguration bearbeiten (app.yml) markenbezogene URLs
Sobald die DNS-Änderungen abgeschlossen sind, können Sie Ihre app.yml bearbeiten und die unten aufgeführten Änderungen vornehmen.
Ändern Sie DISCOURSE_CDN_URL und/oder DISCOURSE_S3_CDN_URL, wenn Sie Domänen-CNAMEs für die Cloudfront-Verteilung (amazonassigned.cloudfront.net) verwenden.
DISCOURSE_CDN_URL: https://discourse-cdn.yourdomain.com
S3-Speicherkonfiguration (markenbezogen)
## S3-Speicherkonfiguration
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: us-east-1
DISCOURSE_S3_ACCESS_KEY_ID: key obfuscated
DISCOURSE_S3_SECRET_ACCESS_KEY: key obfuscated
DISCOURSE_S3_CDN_URL: https://s3-cdn.yourdomain.com
DISCOURSE_S3_BUCKET: your-bucket-name-uploads
DISCOURSE_S3_BACKUP_BUCKET: your-bucket-name-backups
DISCOURSE_BACKUP_LOCATION: s3
Zusätzliche Konfigurationsbearbeitungen (app.yml)
Unabhängig davon, welchen Ansatz Sie verwenden, markenbezogene oder Cloudfront-URLs, benötigen Sie den nachfolgenden Abschnitt after_assets_precompile, um sicherzustellen, dass bei nachfolgenden Neubuilds alles aktuell bleibt.
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
-you may have more plugins
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
Bauen Sie Ihre Instanz mit ./launcher rebuild app neu.
Nachdem ./launcher rebuild app erfolgreich abgeschlossen wurde, führen Sie diese Rake-Befehle aus.
./launcher enter app
rake posts:rebake
rake uploads:migrate_to_s3
rake posts:rebake_uncooked_posts
rake s3:upload_assets
rake s3:expire_missing_assets
Wenn die Rake-Befehle ohne Fehler ausgeführt werden, sind Sie startklar.
Bei einigen Sites schlägt der initiale Neubuild mit einem Fehler in Bezug auf s3:upload_assets fehl. Wenn dies passiert,
überprüfen Sie die „Lesen“-Einstellung im Upload-Bucket. Wenn diese korrekt gesetzt ist,
kommentieren Sie den Abschnitt after_assets_precompile aus oder entfernen Sie ihn:
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
und führen Sie ./launcher rebuild app erneut aus. Führen Sie dann „rake s3:upload_assets“ und „rake s3:expire_missing_assets“ aus.
Wenn beide Rake-Befehle ohne Fehler ausgeführt werden, fügen Sie den Abschnitt after_assets_precompile erneut hinzu oder nehmen Sie die Kommentierung zurück, bauen Sie erneut neu und führen Sie alle oben aufgeführten Rake-Befehle aus.
Wenn einer der Rake-Befehle einen Fehler meldet oder der Neubuild erneut fehlschlägt, liegt etwas in Ihrer app.yml und/oder AWS S3-Konfigurationen und/oder DNS-Einträgen falsch. Viel Erfolg beim Suchen! ![]()
s3-discourse-policy-your-iam-user.txt (697 Bytes)