Einen Unterordner (Pfadpräfix) verwenden, um Discourse mit mehreren Servern zu hosten, die eine Domain teilen

Angenommen, Sie haben einen WordPress-Blog unter http://=DOMAIN= und möchten Ihre Discourse-Foren (die auf einem anderen Server laufen) von http://=DOMAIN==PATH= aus bereitstellen. Wie machen Sie das?


Hinweis: Dies funktioniert nicht, um mehrere Discourse-Instanzen aus verschiedenen Ordnern derselben Domain bereitzustellen. Sie müssen verschiedene Subdomains verwenden, damit jede Website unterschiedliche Cookies haben kann.


Sie müssen den gesamten Traffic für die Domain an einen Ort senden, der den Traffic an den richtigen Server weiterleiten kann. In dieser Anleitung verwende ich Fastly. Discourse wird also auf einem Server ausgeführt, und die anderen Teile Ihrer Website (wie WordPress) werden auf einem oder mehreren anderen Servern ausgeführt.

Änderungen am Docker-Container

Befolgen Sie zunächst die Anweisungen hier, um Discourse von einem Unterordner aus bereitzustellen.

Fastly

Nun richten wir Fastly so ein, dass der Traffic basierend auf dem Pfad an die richtige Stelle gesendet wird. Ich gehe davon aus, dass Discourse von =PATH= aus bereitgestellt wird.

Erstellen Sie einen neuen Dienst, der auf Ihre Hauptwebsite verweist, und befolgen Sie die Anweisungen zum Aktualisieren Ihrer DNS-Einstellungen.

Gehen Sie zu dem Dienst und klicken Sie auf „Konfigurieren“. Stellen Sie sicher, dass Sie Version 2 ausgewählt haben, damit Sie Änderungen vornehmen können. Version 1 ist die aktuell aktive Version und kann nicht geändert werden.

Fügen Sie im Abschnitt „Hosts“ Ihren Discourse-Server als zweites Backend hinzu.

Fügen Sie auf der Registerkarte „Settings“ (Einstellungen) unter „Request Settings“ (Anforderungseinstellungen) einen neuen Eintrag namens „Discourse Pass“ mit der Aktion „Pass“ hinzu.

Bearbeiten Sie schließlich für jeden Host die Bedingungen, um festzulegen, wohin der Traffic weitergeleitet werden soll.

Für Ihre Hauptwebsite sollten Nicht-Discourse-URLs übereinstimmen.

req.url !~ "^=PATH="

Für den Discourse-Host sollten =PATH=-URLs übereinstimmen.

req.url ~ "^=PATH="

15 „Gefällt mir“