Gestern aktualisiert und musste die Minifizierung von Cloudflare deaktivieren, wie hier vorgeschlagen:
Seitdem haben jedoch viele Benutzer (einschließlich mir) mehrere Instanzen von 502 (Bad Gateway) und 529 (Too Many Requests) erlebt.
Um das Problem zu lindern, habe ich auch dieser Anleitung befolgt:
Allerdings scheint sich in Bezug auf die Häufigkeit dieser Fehler nichts geändert zu haben.
Das Update fand gestern gegen 11 Uhr statt. Ich habe einen vollständigen Rebuild durchgeführt, da ich auch ein Plugin deaktivieren wollte.
Ich habe eine Prometheus+Grafana-Instanz, die den Server und Discourse überwacht, aber der Server scheint in Bezug auf die Auslastung in Ordnung zu sein:
Ja, Entschuldigung, ich habe vergessen hinzuzufügen, dass ich die Cloudflare-Vorlage bereits vor langer Zeit zur app.yml-Datei hinzugefügt hatte. Wir sind seit dem ersten Tag hinter Cloudflare.
Dies ist ein Teil der app.yml, wir haben unsere eigenen Zertifikate, die unabhängig erneuert werden, weshalb das Letsencrypt-Zertifikat auskommentiert ist:
## dies ist die All-in-One, eigenständige Discourse Docker Container-Vorlage
##
## Nach Änderungen an dieser Datei MÜSSEN Sie neu erstellen
## /var/discourse/launcher rebuild app
##
## SEIEN SIE *SEHR* VORSICHTIG BEIM BEARBEITEN!
## YAML-DATEIEN SIND SUPER SUPER EMPFINDLICH GEGENÜBER FEHLERN BEI LEERZEICHEN ODER AUSRICHTUNG!
## Besuchen Sie http://www.yamllint.com/, um diese Datei bei Bedarf zu validieren
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Kommentieren Sie diese beiden Zeilen aus, wenn Sie Lets Encrypt (https) hinzufügen möchten
- "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"
- "templates/cloudflare.template.yml"
## welche TCP/IP-Ports soll dieser Container verfügbar machen?
## Wenn Sie möchten, dass Discourse einen Port mit einem anderen Webserver wie Apache oder nginx teilt,
## siehe https://meta.discourse.org/t/17247 für Details
expose:
- "80:80" # http
- "443:443" # https
[... ]
Es sieht so aus, als ob Ihre PostgreSQL überlastet ist. Es sieht so aus, als ob der größte Teil Ihres RAMs ungenutzt ist. Ich würde versuchen, die DB anzupassen, um ihn zu nutzen und zu sehen, wie die Dinge danach laufen.
Aber… warum plötzlich? Nach nur einem Update der Anwendungsschicht?
Ich benutze das Discourse Prometheus Exporter Plugin.
Wenn ich einen PostgreSQL-Exporter als weiteren Container auf der VM hinzufügen würde, wäre es dann möglich, ihm den Zugriff auf die Metriken der Discourse-PostgreSQL-Installation zu ermöglichen?
Bin mir nicht sicher, ob es damit zusammenhängt, aber es begann sicherlich nach dem Update. Das Klicken auf die Schaltfläche „Schließen“ im Tab „Ungelesen“ gibt immer eine 503 zurück.
Sie können nicht von Tests bestanden zu stable zurückkehren, es sei denn, es gibt eine höhere stabile Version. Die nächste Gelegenheit für Sie ist also, wenn 3.4.0 herauskommt, ich schätze, das ist um oder nach Weihnachten…
Außerdem müssen Sie irgendwann in den sauren Apfel beißen.
Nun, das habe ich gerade getan. Scheint zu funktionieren. Wir kümmern uns sowieso nicht um irgendwelche Funktionen in 3.3.0.
Ich werde sehen, ob es immer noch Probleme gibt. Schlimmer kann es nicht werden, als dass wir immer noch eine Fülle von 429 und 502 erhalten, keine allzu große Veränderung.
Ich erwähne immer die Version, in der ich mich befinde, wenn ich ein Problem poste.
Ich denke, es ist wichtig, sich daran zu erinnern, dass gerade weil dies als Open-Source-Software präsentiert wird, kritische Probleme berücksichtigt werden sollten, anstatt Dinge wie diese zu schreiben:
Dies ist ein weiteres Beispiel dafür, dass Leute sich Mühe geben und zur „stabilen“ Version wechseln, auf einige Fehler stoßen, die durchs Raster fallen, weil es nicht die beliebteste eingesetzte Version ist.
Wenn „stabil“ „stabil“ bedeuten sollte, nicht „Legacy“.
Die Tatsache, dass Kernabhängigkeiten wie Discourse Docker ohne Tag-System veröffentlicht werden, sollte ausreichen, um etwas demütiger zu sein, wenn man auf Benutzer antwortet, die ein Problem melden.
Ich sprach davon, die Tatsache zu erwähnen, dass Sie ein Downgrade durchgeführt haben, als Sie es technisch gesehen nicht konnten.
Ich denke, es ist wichtig, sich daran zu erinnern … dass ich nicht für Discourse arbeite und Ihnen in meiner eigenen Zeit helfe, daher schätze ich Ihren Ton nicht und kann auch nichts mit Ihrem Feedback anfangen.