Liste der Anhänge anzeigen (Anzahl: 2)
Problem mit dem OPcache bei mehreren Webservern hinter einem LoadBalancer (Contao4.9)
Hallo zusammen,
aktuell ziehen wir ein größeres Contao 4.9-Projekt im Zuge eines Relaunches auf eine neue, container-basierte Server-Infrastruktur um.
Konkret hängen hier zwei Webserver (mit je einem PHP-FPM und aktiviertem OPcache) hinter einem LoadBalancer mit zufälliger Lastverteilung.
Das Session-Handling haben wir über einen Redis-Container gelöst.
Die Webserver und PHP Container teilen sich zudem über ein EFS diverse Datei-Ressourcen wie bspw. die files/-Ordner oder auch den Ordner var/cache/. Auch die system/config/localconfig.php wird entsprechend geteilt. Soweit funktioniert dieses Konstrukt auch schon ganz gut.
Probleme treten allerdings genau dann auf, wenn man z.B. versucht, die Contao-Einstellungen im Backend anzupassen. Denn die geänderten Einstellungen werden zwar in die "neue" localconfig.php Datei geschrieben, jedoch wird der aktivierte OPcache quasi immer nur in einem der beiden PHP-FPM Container resettet. Das führt dann dazu, dass die Anzeige unter "Einstellungen" im Contao Backend in etwa 50% der Fälle die falschen Settings darstellt. Auch bin ich mir außerdem nicht sicher, welche Settings dann über die Config::get()-Methode auf dem jeweiligen System ankommen.
Auch das Verschieben von Dateien innerhalb der Contao Dateiverwaltung führt in dieser Konstellation leider häufiger zu Fehlern:
Anhang 24520
Anhang 24521
Erst ein mehrmaliges Ausführen der Aktion sorgt dafür, dass, wenn zufällig mehrmals derselbe Web- und somit PHP-FPM-Container antwortet, kein Fehler auftritt.
Daher meine Frage: Hat jemand von euch Erfahrung mit so einer Infrastruktur und den auftretenden Problemen? Und falls ja, wie sieht hier die beste Lösung aus?
Vielen Dank um Voraus und beste Grüße