Kommentare mit aktiviertem Ajax laden bringt Tausende von post_id=undefined Besucheranfragen

Umgebung: Selbst gehostetes Discourse auf AWS EC2 mit der Ubuntu 24.04 AMI. Der Host ist ein r7g.large mit 2x vCPUs und 16 GB RAM. Discourse hat die Version 3.6.0.beta1-dev (db974047e4) und wird regelmäßig aktualisiert. WordPress hat die Version 6.8.2 und das wp-discourse-Plugin die Version 2.5.9. Sowohl WordPress als auch Discourse werden über Cloudflare „orange-cloud“ weitergeleitet.

Aktuelle wp-discourse-Einstellungen: Ich zeige Discourse-Kommentare für alle Themen an und habe „Kommentare mit Ajax laden“ aktiviert. (Sowohl die Leser als auch die Besitzer der WordPress-Website möchten, dass neue Kommentare so schnell wie möglich unter den WP-Beiträgen angezeigt werden. Daher möchte ich gemäß den Anforderungen der Besitzer „Kommentare mit Ajax laden“ aktiviert lassen.)

Was ich sehe: Im Allgemeinen funktioniert wp-discourse hervorragend. Wenn ein Leser einen WP-Beitrag besucht, fordert sein Browser /wp-json/wp-discourse/v1/discourse-comments?post_id=XXXXX an, wobei XXXXX die erwartete Beitrags-ID ist, und die Kommentare werden ohne Probleme geladen. Neue Kommentare erscheinen auf der WordPress-Seite innerhalb weniger Sekunden, nachdem sie in Discourse gepostet wurden.

Besucherbrowser senden jedoch auch einen Aufruf an dieselbe discourse-comments-URI, wenn sie irgendeine WordPress-Adresse auf der gesamten Website besuchen. Die Homepage der Website, Kommentararchive, die Über-uns-Seite, die Kontaktseite, Autoren-Bio-Seiten, statische Seiten, Suchseiten, alles. Diese Anfragen sind alle an /wp-json/wp-discourse/v1/discourse-comments?post_id=undefined, und ich erhalte etwa 20.000 davon in einem 24-Stunden-Zeitraum (ungefähr entsprechend meiner gesamten Anzahl von ausgelieferten Seiten).

Das wäre mir nicht besonders wichtig, aber die Bearbeitung so vieler zusätzlicher Anfragen belastet meinen WP-Origin-Server spürbar. Es ist im Moment beherrschbar, aber diese Website ist eine Wettervorhersageseite an der Golfküste, und während Wetterereignissen (insbesondere Hurrikans) kann unsere normale tägliche Besucherzahl von 20.000 auf 1,5-2 Millionen ansteigen, und die Bewältigung von Millionen von post_id=undefined-Anfragen an einem Tag wäre eine Herausforderung.

Das Einzige, was ich hier im Meta-Bereich finde, das mit diesem Problem zu tun zu haben scheint, ist dieser Thread aus dem Jahr 2019, wo die gegebene Antwort lautet: „Kommentare mit Ajax laden ausschalten“. Wie oben erwähnt, möchte ich das angesichts der Anforderungen, unter denen ich arbeite, lieber nicht tun.

Hier ist eine repräsentative undefined-Anfrage. Diese wurde generiert, als ich auf die Homepage der Website zugegriffen habe:

Workaround: Da diese Anfragen anscheinend nichts tatsächlich tun, habe ich eine Cloudflare WAF-Regel implementiert, um sie auf CF-Ebene mit einem leeren Antwortkörper zu beantworten. Dies hat die Auswirkungen des problematischen Verhaltens vollständig beseitigt – ich sehe die undefined-Anfragen nicht mehr an meinem Origin und verschwende keine CPU mit der Generierung von Antworten.

Frage: Ist das Senden von discourse-comments?post_id=undefined-Ajax-Anfragen für jede einzelne WP-Seite das beabsichtigte Verhalten des wp-discourse-Plugins? Es scheint, als wäre es vielleicht etwas sicherer (oder zumindest etwas deterministischer), diese Anfragen nur zu senden, wenn tatsächlich ein WP-Beitrag geladen wird (oder auch eine Seite, wenn Seiten in den wp-discourse-Optionen aktiviert sind).

Wie gesagt, ich habe einen Workaround implementiert, der anscheinend funktioniert und die zusätzliche Last der Bearbeitung dieser Zehntausenden von fehlerhaften Anfragen beseitigt, sodass ich stabil und gut aufgestellt bin. Aber es wäre gut zu wissen, ob das von mir beobachtete Verhalten beabsichtigt ist.

1 „Gefällt mir“

Hallo @Lee_Ars, danke für die Meldung. Das ist tatsächlich ein Problem. Ich arbeite an einer Lösung und werde versuchen, bis Ende der Woche eine neue Version des Plugins zu veröffentlichen.

4 „Gefällt mir“

Ist das jetzt behoben?

Nein, das problematische Verhalten ist immer noch sichtbar. Ich glaube nicht, dass bereits ein Fix bereitgestellt wurde.

Die nächste Version 2.6.0 enthält eine Korrektur dafür. Sie ist für eine sehr baldige Veröffentlichung vorgesehen!

2 „Gefällt mir“

Ich habe 2.6.0 installiert und sehe eine nahezu vollständige Reduzierung des problematischen Verhaltens! Ich bin von 32,98.000 Anfragen in 24 Stunden (laut obigem Screenshot) auf weniger als tausend heruntergekommen:

Sieht für mich gelöst aus!

2 „Gefällt mir“

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