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:
Screenshot-Forbidden.png
Screenshot_2021-03-05 Internal Server Error.png
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
Lesezeichen