Sie möchten also Discourse von einem Unterordner (Pfadpräfix) anstelle einer Subdomain bereitstellen?
Kühl. Klingt nach dem, was ich suche. Danke.
Wie komme ich da rein?? Ich meine, wie finde ich diesen Teil?? Es gibt 2 Sätze mit denselben Zeilen! Welche sollen bearbeitet oder geändert werden?
EDIT von hier:
Schon gut, Kumpel..! Danke für deine Zeit! Ich habe es selbst herausgefunden ![]()
Übrigens. Dein Weg funktioniert nicht ganz.
Sie müssen auch die Umgebungsvariablen zumindest in Discourse 3 einrichten.
Öffnen Sie Ihre app.yml
und suchen Sie nach den Umgebungsvariablen und füllen Sie sie aus.
Danke für diese,
ich habe zuerst Discourse Standalone eingerichtet, das mir die richtige Registrierungsseite unter http anzeigt. Dann habe ich Nginx installiert, aber ohne Zertifikat, da ich es in einem Testlabor ohne Let’s Encrypt-Zugriff verwende. Ich sehe jetzt die Registrierungsseite, aber ohne Styling. In den Nginx-Logs auf dem Host sehe ich 404-Fehler. Irgendeine Idee zur Lösung?\nDanke\nGelöst: Ich musste try_files $uri $uri/ =404; auskommentieren, was unter Debian 11 und Nginx 18.0-6 Standard ist.
Fehler. Nachdem ich dies eingestellt hatte, zeigte der Chrome-Browser Fehler an:
Mixed Content: Die Seite unter '\u003cURL\u003e' wurde über HTTPS geladen, forderte aber eine unsichere Schriftart '\u003cURL\u003e' an. Diese Anfrage wurde blockiert; der Inhalt muss über HTTPS bereitgestellt werden.
Haben Sie force_https aktiviert?
Ja, das habe ich im Schritt certbot --nginx gemacht. Und ich habe es viele Male versucht, es hat nicht funktioniert.
Sie müssen die Discourse-Einstellung force_https festlegen, nicht in nginx. Am besten geht das mit einer Umgebungsvariable, aber Sie können es auch in der UX tun, wenn Sie zu admin/settings gelangen können.
Ich habe die obigen Schritte befolgt und nginx erfolgreich ausgeführt, aber beim Aufrufen der URL erhielt ich die Fehlermeldung ERR_TOO_MANY_REDIRECTS.
Kann mir jemand helfen zu verstehen, warum?
bind() zu unix:/shared/nginx.http.sock fehlgeschlagen (95: Operation not supported)
Ich bin also verwirrt, ich kann /discourse-setup nicht ausführen, da ich es auf einem vorhandenen Webserver installiere, aber ich soll eine .yml-Datei bearbeiten, die nicht erstellt wird, es sei denn, ich führe /discourse-setup aus. Daher existiert app.yml nicht, wie kann ich sie also bearbeiten?
Kopieren Sie standalone.yml aus dem Verzeichnis „samples“.
Ich fühle mich wie ein Idiot, nachdem ich diesen Beitrag zwanzig Mal durchgegangen bin und übersehen habe, dass in der letzten Zeile dieses Abschnitts „Hinzugefügt“ stand. Darf ich vorschlagen, @riking könntest du die Einleitung wie folgt ändern:
Ich habe die vorgeschlagene Änderung vorgenommen (und Beiträge darüber gelöscht, ob es sich um ein Wiki handelt, das Sie anscheinend aufgrund Ihres Vertrauenslevels nicht bearbeiten können – das tut mir leid). Es ist eine subtile Änderung, aber ich denke, sie könnte anderen helfen. Danke.
Ich habe eine etwas andere Konfiguration: Mein Reverse-Proxy läuft nicht auf dem Host-Rechner, sondern in einem separaten Docker-Container.
Ich verwende derzeit ein Docker-Netzwerk, um die beiden zu verbinden, und exponiere Discourse daher nicht über einen Unix-Socket.
Funktioniert gut, hat aber einen erheblichen Nachteil: Die Ratenbegrenzung sieht nur die IP des Reverse-Proxys und rätlimitiert daher fälschlicherweise den Reverse-Proxy…
Ich sehe mehrere Optionen:
- Entfernen der Ratenbegrenzungsvorlage. (Keine gute Option…)
- Erstellen einer eigenen Vorlage, die Nginx so konfiguriert, dass
set_real_ip_fromden Reverse-Proxy verwendet. - Anpassen der Ratenbegrenzungsvorlage, um
$http_x_forwarded_foranstelle von$binary_remote_addrzu verwenden. - Den Unix-Socket im Reverse-Proxy-Container exponieren. (Ich weiß nicht, ob/wie das möglich ist.)
Idealerweise würde ich keine eigene Vorlage erstellen oder bestehende ändern, sondern das Standard-Setup so nah wie möglich verwenden, d.h. Option 4.
Irgendwelche Ideen? Vor-/Nachteile? Gedanken?
Ich verstehe, dass Sie dieses Problem schon vor langer Zeit hatten, aber ich bin gerade heute Abend darauf gestoßen und habe eine Lösung gefunden, die für mich funktioniert hat.
Mein Problem lag bei meinem Registrar, der als Proxy mit SSL/TLS-Einstellungen fungierte, die auf „flexibel“ eingestellt waren. Die Umstellung auf „Vollständig“ hat das Problem sofort behoben – ich wünschte nur, ich wäre früher darauf gekommen, bevor ich etwa 20 Mal neu aufgebaut habe.
Was ist mit einer Zwei-Container-Installation gemeint? Vielen Dank.
Ein Container ist ein Docker-Konzept und im Wesentlichen eine isolierte Verarbeitungseinheit, die eine von den Betriebssystem unabhängige Konfiguration haben kann.
Normalerweise laufen Discourse und alle seine Abhängigkeiten (bei der Standardinstallation) in einem einzigen Container.
Es gibt fortgeschrittenere Installationen, bei denen andere Dienste in einem anderen Container laufen können, und sogar eine, bei der Discourse auf zwei aufgeteilt ist (einer für die Datenbank und einer für das Web) – eine „Zwei-Container-Installation“.
Hinweis: Discourse verwendet seinen eigenen, maßgeschneiderten Launcher, der nicht ganz derselbe ist wie der von Standard-Docker verwendete.
Ich habe eine Frage: Wenn sich ein Reverse-Proxy in einem separaten Docker-Container befindet, kann er dann immer noch Unix-Sockets verwenden?


