Ich verwende BOA für meine Websites, aber standardmäßig deaktiviert BOA einfach das Front-End-Caching im laufenden Betrieb für Formularübermittlungen. Über meine tatsächliche Erfahrung hinaus stieß ich auf ein einjähriges künstliches Kreuz, wie die New Zealand Post mit Drupal & Varnish und dem Formular-Token-Problem umgeht. Holy John Wayne, es ist ein Muss für Drupal Caching - wirklich. Konzentrieren Sie sich nur auf das Formularproblem:
Das letzte Teil unseres Puzzles ist das Modul Cookie Cache Bypass Advanced , das automatisch ein spezielles NO_CACHE-Cookie setzt, wenn der Benutzer ein POST-Formular auf der Site sendet, einschließlich des Anmeldeformulars. Unser Lack ist so konfiguriert, dass er den Seiten-Cache (aber nicht den ESI-Cache) umgeht, wenn er dieses Cookie sieht.
Sie können Formular-Token auch deaktivieren, wenn die XSRF-Produktion in form_alter (nicht gesetzt ($ form ['# token']);) oder ($ form ['# token'] = FALSE;) nicht erneut angefordert wird.
Ein Acquia Drupal Performance-Artikel enthält a Drupal-Modul-Authcache vorgestellt. Wenn Sie jedoch das Dokument in Authcache lesen, wird das Caching mit einem Platzhalter für das Formular berechnet ( das Formular wird nicht zwischengespeichert):
Authcache versucht, benutzerdefinierte Inhalte abzufangen und einen Platzhalter im HTML-Code einzurichten. Nach dem Laden der Seite wird ein Ajax-Rückruf verwendet, um benutzerdefinierte Daten abzurufen und die Platzhalter auszufüllen, wodurch der Seiten-HTML-Code dynamisch aktualisiert wird.
Aktuelle Authcache-Platzhalter: Formulartoken (nur angemeldete Benutzer; erforderlich von> Drupal, um Angriffe auf Fälschungen von standortübergreifenden Anforderungen zu verhindern)
Die Strategie ist, alles außer dem Formular zwischenzuspeichern . Also alles andere ansprechen: Vielleicht wird Lack überhaupt nicht verwendet, Memcache & Redis? Meine Strategie wäre es, das zu verwenden, was BOA bietet, weil ich BOA und die dahinter stehenden Assistenten verwende ( omega8.cc ) eine Tonne mehr wissen als ich. Ich glaube nicht, dass es einen externen Cache gibt, der das Problem löst. Sie scheinen alle für die Form zu umgehen.
Führen Sie ein teilweises Caching mit dem oben genannten Authcache und mit fein abgestimmten Ansichten und Bedienfeldern durch, wie im Artikel und in der NZ Post erwähnt vom Brain Trust bei Wunderkraut beschrieben - es ist alt, aber es behebt das Problem.
Verwendung Drupal ESI - Modul und Varnish ist teilweise ESI - konform):
ESI - oder Edge Side Includes - ist eine leistungsstarke Caching-Lösung für authentifizierte Benutzer, kann aber auch für anonyme Benutzer hilfreich sein.
In der Regel verhindern Seiten, die für authentifizierte Benutzer personalisiert sind (selbst geringfügige Personalisierungen, z. B. ein Block mit der Aufschrift "Als Manarth angemeldet"), dass Reverse-Proxys (die problemlos 100-mal schneller als Drupal ausgeführt werden können) die Seite aufgrund von Nachrichten zwischenspeichern für einen Benutzer bestimmt könnte dann von einem anderen gesehen werden.
Hoffe das ist hilfreicher.