ich versuche, die korrekte Architektur für das Bereitstellen einer benutzerdefinierten Anwendung unter einem Subpfad zu bestätigen, während Discourse unter dem Stammverzeichnis (/) bleibt, ohne die internen Mechanismen von Discourse zu ändern.
Discourse muss unter / bleiben, das benutzerdefinierte System muss unter /tickets sein
Dieselbe Domain
Kein Discourse-Plugin
Aktuelle Umgebung
OVH VPS (Ubuntu) Discourse läuft in Docker (/var/discourse)
Benutzerdefinierte Go-Anwendung läuft auf demselben Server unter 127.0.0.1:8080
Externer nginx, der auf dem Host installiert ist (nicht im Container)
Ich versuche NICHT, Discourse in einem Unterordner wie /forum auszuführen. Ach ja, bevor jemand fragt: Ja, ich habe versucht, das Discourse-Tickets-Plugin zu verwenden – es funktioniert nicht so, wie ich es möchte.
Sie können dies ganz einfach mit nginx tun, obwohl es nicht empfohlen wird, ist mir nicht bekannt, dass Discourse die Route /tickets für irgendetwas verwendet.
Ich denke, das sind wahrscheinlich Ihre besten Anweisungen, wenn auch „rückwärts“. Sie werden diesen Anweisungen folgen, aber sozusagen rückwärts. Ihr externer Reverse-Proxy wird / an Discourse und /tickets an Ihre Anwendung weiterleiten.
Ich denke, der externe Nginx ist der einfachste Weg, dies zu tun. Es wäre möglich, eine Vorlage zu erstellen, die es dem internen ermöglicht, dies zu tun, aber es ist komplizierter und meiner Meinung nach mit wenig Gewinn verbunden.
Ja, aber Sie müssen am Discourse-Container keine Änderungen vornehmen, außer die SSL/Let’s Encrypt-Vorlagen zu entfernen und möglicherweise einen Socket zu verwenden. (Daher ist in diesem Thema nicht viel hilfreich.)
Der „Tickets“-Link, den ich zum Discourse-Header hinzugefügt habe, funktioniert auch, wenn er auf leer und NICHT auf selbst gesetzt ist, da /tickets dann als Discourse-Route behandelt wird und versucht, nur die React-Ansicht auszutauschen. Leer erzwingt einen vollständigen Seitenneuladen.