Ich konnte das Problem inzwischen eingrenzen.
Die Ursache liegt in der erweiterten http_cache.reverse_proxy
-Konfiguration in der z-shopware.yaml
, die mit Shopware 6.6.10.x eingeführt wurde.
Wenn man die Konfiguration wie folgt erweitert:
shopware:
http_cache:
reverse_proxy:
enabled: true
ban_method: "BAN"
hosts: [ "http://127.0.0.1:6081" ]
max_parallel_invalidations: 3
use_varnish_xkey: true
…funktioniert der gesamte Shop bis auf die Account-Seiten. Diese werfen einen Fehler 500, obwohl im Varnish pass gesetzt und die Anfrage korrekt an das Backend weitergegeben wird.
In der Apache-Fehlerlog erscheinen „Premature end of script headers“ – was auf ein Problem im Zusammenspiel mit den Cache-Headern hindeutet.
Mit dieser simpleren Konfiguration hingegen funktioniert der gesamte Shop einwandfrei:
shopware:
http_cache:
reverse_proxy: true
Setzt man jedoch nur:
shopware:
http_cache:
reverse_proxy:
enabled: true
…dann ist gar keine Seite mehr erreichbar.
Hintergrund zur Konfiguration:
Ich entwickle aktuell ein Plugin zur gezielten Cache-Invalidierung bei dynamischen Produktgruppen (also Streams). Ziel ist es, nach Änderungen in einem Produktstream die betroffenen Redis- und Varnish-Caches automatisch zu invalidieren – ohne flushall.
Dazu nutze ich Redis zum gezielten Entfernen relevanter Keys (z. B. product_stream_result_, cms_page_resolver_category_) und Varnish mit aktiviertem xkey, um betroffene Seiten zu bannen.
Dabei zeigte sich allerdings ein weiteres Problem:
Selbst bei sauberer Key-Invalidierung bleiben alte Ergebnisse im Frontend bestehen – offenbar, weil Shopware die Produktstream-Ergebnisse tiefer cached, als dokumentiert. Nur ein kompletter Redis-Flush (flushall) bringt aktuell zuverlässig die gewünschten Resultate – was für einen Liveshop natürlich nicht akzeptabel ist.
Wir haben den Fall auch hier auf GitHub dokumentiert:
Dynamic Product Groups not updating in storefront (cache/tag invalidation ineffective) · Issue #8221 · shopware/shopware · GitHub
Vielleicht hilft dieser Hinweis auch anderen, die Varnish/Redis im produktiven Einsatz haben und Probleme mit dynamischen Inhalten oder dem neuen Cache-Verhalten nach dem Sicherheitsupdate feststellen.