Discourse + Webserver. Möglich oder besser vermeiden?

Kurzer Hinweis: Ich bin relativ neu darin, eine VPS-Umgebung von Grund auf aufzubauen, habe aber genug Erfahrung mit Webhosting (insbesondere Shared- und Managed-Dedi-Hosting), um zu wissen, was ich tue, und um Tutorials zu verstehen.

Trotzdem verwende ich derzeit DigitalOceans günstigsten Droplet für Experimente. Ich bin ein Hobbyist, erwarte keinen großen Traffic und versuche einfach, zwei Instanzen zu erstellen: eine für eine Art Startseite (wahrscheinlich WordPress) und eine begleitende Discourse-Forum-Instanz – eine Instanz für Game Design und eine weitere für meine Content-Creator-Community.

Mir ist bewusst, dass Discourse und Apache aufgrund der Entscheidung von Discourse, Port 80 zu verwenden, nicht gut zusammenarbeiten. Mir ist auch bekannt, dass es Workarounds gibt, aber es scheint verschiedene Varianten mit nicht bestätigten Ergebnissen zu geben, und es gibt keine offizielle Bestätigung von Discourse im Sinne von „Ja, das funktioniert".

Ich bin etwas verwirrt darüber, warum eine so großartige Plattform so gestaltet wurde, dass sie das Verwalten eines Webservers daneben erschwert. Aber meine bisherigen Erfahrungen mit der Software haben mich dennoch interessiert genug, um einen Weg zu finden, es zum Laufen zu bringen. Ich habe gesehen, dass eine WordPress-Integration existiert und auf einer Feature-Seite stark beworben wird, aber Discourse scheint wiederum nicht für etwas anderes als einen eigenständigen Betrieb konzipiert zu sein.

Irgendwelche Ratschläge oder Inputs von denen, die auf dasselbe Problem gestoßen sind? Danke!

Ich glaube, das ist, wonach du suchst:

@neounix hat Erfahrung mit dem Betrieb von Discourse zusammen mit Apache2 und kann dir vielleicht einige Tipps geben.

4 „Gefällt mir“

Ist das also eine Empfehlung, zu Nginx zu wechseln? Ich habe absolut keine Erfahrung damit, und jeder Webserver, den ich je verwendet habe – auch vorkonfigurierte – nutzte Apache.

Für Apache gibt es dies hier: Set up Discourse on a server with existing Apache sites

Allerdings scheint es eine große Anzahl von Problemen zu geben, es ordnungsgemäß zum Laufen zu bringen, insbesondere mit SSL.

Wäre es nicht einfacher, zwei Droplets zu betreiben, eines für die Website und eines speziell für Discourse? Ich könnte einfach den DNS-Eintrag für die Subdomain ändern, damit er auf das Discourse-Droplet zeigt, und das sollte das Problem lösen. Ich finde es nur etwas seltsam, zwei Server nur für ein Forum zu betreiben.

Hallo @OrbitStorm

Willkommen!

Discourse ist überhaupt nicht hinderlich.

Das Beherrschen des Betriebs von Discourse in Docker hinter einem Reverse-Proxy-Webserver ist eine sehr lohnende Erfahrung; entweder mit Apache2 oder nginx.

Wenn Sie bereits Anwendungen hinter Apache betreiben, ist es einfach, eine oder sogar 100 Dockerisierte Discourse-Instanzen hinter Apache einzurichten!

5 „Gefällt mir“

Vielen Dank für die Antwort.

Ich sage das mit größtem Respekt, aber Discourse erfordert aus dem heraus „out of the box

Ich denke ehrlich gesagt, dass das machbar ist. Ich bin kein Experte und folge einfach den sehr guten Anleitungen und Tutorials hier und dort. Beim Einrichten von Discourse hinter Nginx hatte ich kaum Probleme, also habe ich wahrscheinlich etwas Glück, aber ich denke, es ist alles andere als unmöglich :slightly_smiling_face:

Diese hier gefallen mir:
https://linuxize.com/post/how-to-install-nginx-on-ubuntu-18-04/
https://linuxize.com/post/secure-nginx-with-let-s-encrypt-on-ubuntu-18-04/

Ich vermute jedoch, dass die Kombination aus Multisite/Multicontainer und S3-Clone nicht gerade der einfachste Weg sein wird :sweat_smile:

Und für die Kombination aus Postfix und Dovecot:
https://linuxize.com/post/install-and-configure-postfix-and-dovecot/

1 „Gefällt mir“

@Benjamin_D Mein Problem ist, dass alle hier verfügbaren Tutorials einen Aspekt meiner aktuellen Umgebung nicht berücksichtigen. Es gibt ein Tutorial für Apache, aber es setzt CentOS voraus. Ich verwende jedoch Ubuntu. Das andere Tutorial von Kane York nutzt Nginx, aber wie erwähnt, setze ich Apache ein.

Ich versuche auch nichts übermäßig Komplexes. Ich verwende einfach DigitalOcean, Linux mit Ubuntu 18.04, und hoste alles auf dem Droplet (ohne Drittanbieter-Speicher), usw. Als E-Mail-Lösung nutze ich Mailgun, aber ich gehe davon aus, dass dies keinen Posteingang bietet, was vorerst in Ordnung ist.

Ich versuche es so einfach wie möglich zu halten.

1 „Gefällt mir“

@OrbitStorm

Tatsächlich ist Discourse meiner Meinung nach (IMHO) derzeit die beste Open-Source-Software für Foren und Community-Aufbau auf dem Planeten, und zwar aus vielen Gründen. Hier sind nur einige davon:

  1. Discourse ist Open Source und verfügt über eine starke Community sowie ein sehr kluges (und fähiges) Kern-Entwicklungsteam.

  2. Discourse ist dafür ausgelegt, in der Produktion in einem Docker-Container zu laufen, was viele Vorteile bietet:

  • Discourse kann problemlos im standalone mode bereitgestellt werden, ohne dass ein externer Webserver oder eine externe Datenbank erforderlich ist.

  • Discourse kann problemlos im multi-container mode bereitgestellt werden, was eine höhere Zuverlässigkeit und nahtlose Updates ermöglicht.

  • Discourse kann zudem in hochverfügbaren Konfigurationen mit Docker Swarm und Kubernetes bereitgestellt werden, wobei Discourse bei Bedarf hoch- und herunterskalieren kann.

  • Discourse ist einfach zu sichern und wiederherzustellen. Wir können die Standard-Backup-Funktion von Discourse OOTB nutzen und diese weltweit in einem frischen, unberührten Docker-Container wiederherstellen.

  1. Discourse läuft problemlos hinter Reverse-Web-Proxys wie Apache2 und nginx. Auch dies bietet viele Vorteile, hier einige Beispiele:
  • Discourse kann mit wenig Aufwand auf einem bestehenden Webserver, sei es nginx oder Apache2, betrieben werden, sowohl über von Docker exponierte TCP/IP-Ports als auch über UNIX-Domain-Sockets.

  • Das Betreiben von webbasierten Anwendungen hinter Reverse-Proxys ist ein etabliertes Verfahren. Diese Einrichtung ist nicht spezifisch für Discourse, aber Discourse bietet dafür Unterstützung.

  • Die Einrichtung von SSL ist hinter einem Reverse-Proxy sehr einfach und kann so simpel sein wie certbot -d my.great-discourse.site mit der unterstützten und kostenlosen LETSENCRYPT.

  1. Discourse ist auf GitHub commitweise vollständig dokumentiert, sodass jeder den Änderungen im Code folgen kann.

  2. Discourse verfolgt ein progressives Geschäftsmodell, das einige wichtige Vorteile bietet, darunter:

  • Discourse, die Kernsoftware sowie viele großartige Plugins, Themes und Komponenten, sind kostenlos.

  • Discourse bietet kostenlosen Support, einschließlich Standardkonfigurationsunterstützung, auf meta.

  • Discourse bietet kommerzielles Hosting für diejenigen, die kein Self-Hosting wünschen oder lieber „hands-off

2 „Gefällt mir“

Wenn ich das richtig verstehe, möchten Sie, dass Nginx auf einer Seite eine Subdomain lauscht und an Apache weiterleitet und auf der anderen Seite eine Subdomain an den Container, in dem Discourse läuft (entweder durch Freigeben des richtigen Ports in der app.yml oder durch Verwendung der web.socketed-Vorlage), oder nutzen Sie Apache als Proxy?

Im CentOS-Tutorial wird meines Wissens nach Nginx anstelle von HAProxy verwendet :thinking:

Nahe dran, aber leider nicht ganz. Zur Wiederholung: Ich nutze Linux mit Ubuntu 18.04. Apache dient als Webserver für eine Standard-HTML-Website (zukünftig WordPress), und Discourse ist unter einer Subdomain installiert. Ich muss lediglich herausfinden, wie ich einen Reverse Proxy (wie in diesen Anleitungen beschrieben) einrichte, der den Verkehr von den Ports 80 und 443 auf neue Ports umleitet, da Apache diese beiden Ports bereits belegt. Ich bin nicht an der Verwendung von Nginx interessiert, da ich keine Erfahrung damit habe und es nicht mit Apache kombinieren möchte, um mein Setup noch komplexer zu machen.

Ich bin kein fortgeschrittener Entwickler. Ich bin nur jemand mit fließenden Kenntnissen im Frontend, grundlegendem Verständnis von Panels, begrenztem Verständnis von SSH und im Grunde gar keinem Verständnis für alles andere (deshalb nutze ich Anleitungen).

Mein Endziel ist es, zwei Domains mit jeweils einer Startseite und mehreren Discourse-Instanzen (eine für jede Website) zu betreiben. Einfache Sache.

1 „Gefällt mir“

Ich bin mir nicht sicher, ob es komplizierter ist, Apache als Server und Proxy zu verwenden, als nginx oder HAProxy zu bündeln :sweat_smile:
Bezüglich des Tutorials macht es zwischen CentOS und Ubuntu kaum einen Unterschied – apt statt yum,
https://support.cloudflare.com/hc/en-us/articles/360029696071-Restoring-original-visitor-IPs-Option-2-Installing-mod-remoteip-with-Apache statt

Darf ich dies als Vorschlag für Apache als Reverse-Proxy einbringen?

1 „Gefällt mir“

Wenn du ein einfaches Leben haben möchtest, installiere Discourse auf einem eigenen Droplet. Discourse und Apache lassen sich wirklich nicht auf einem 1-GB-Droplet betreiben, daher kosten zwei 1-GB-Droplets nicht einmal mehr.

2 „Gefällt mir“

@pfaffman Meine Absicht war es nie, auf dem kleinsten Droplet zu bleiben. Ich nutze es nur, während ich alles konfiguriere. Es ergibt keinen Sinn, während der Experimentierphase einen höheren Stundensatz zu zahlen.

Der einzige Grund, warum ich nicht so daran interessiert bin, zwei Droplets zu betreiben, ist, dass ich wahrscheinlich 3–4 verschiedene Domains zu DigitalOcean migrieren muss. Ich möchte nicht für 6–8 Droplets bezahlen. Das ist Wahnsinn.

Wenn du mehr als drei Discourse-Sites möchtest, solltest du dich wahrscheinlich mit Multisite beschäftigen. Ich habe eine Konfiguration mit Traefik, untersuche aber auch andere Reverse-Proxy-Lösungen.

Wenn Sie Apache verwenden und mehrere getrennte Websites betreiben möchten, lautet der relevante Suchbegriff VirtualHost.

4 „Gefällt mir“

Bei einer kleinen Droplet-Instanz solltest du die Puffer möglicherweise reduzieren. Meine Droplet-Instanz verfügt über 4 GB RAM und 4 geteilte Kerne.

2 „Gefällt mir“

Dank von Bobbyiliev von DigitalOcean konnte ich eine Lösung finden.

Die Lösung finden Sie hier: Discourse not loading with Apache and proxy redirect - #8 by OrbitStorm

3 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.