Hoe optimaliseert u de Dispatcher-cache?
Dit artikel bevat gedetailleerde instructies over de verschillende manieren om de Dispatcher-cache te optimaliseren. Hierin worden verder de stappen beschreven waarmee u onvalidaties in de stijl TTL ("Time to Live" of verlopen) inschakelt, Dispatcher-spoelmiddelen uitschakelt, onder andere Dispatcher opnieuw ophaalt.
Beschrijving description
Milieu
Adobe Experience Manager
Kwesties/Symptomen
Dit artikel richt zich op de meest recente optimalisaties in de AEM Dispatcher en op de manier waarop deze optimaal kunnen worden benut. AEM Dispatcher is een caching omgekeerde volmachtserver die voor gebruik met Adobe Experience Manager wordt ontworpen. Het kan als een module binnen een bestaande software van de Webserver worden geïnstalleerd en worden uitgevoerd. Op het tijdstip van het schrijven van dit artikel, wordt de module van Dispatcher gesteundop de Server van Apache HTTP, Microsoft IIS, en iPlanet.
Resolutie resolution
hoe werkt Dispatcher caching?
Op het eenvoudigste niveau is de AEM dispatcher een reverse-proxy die werkt door caching, leegmaken van cache en het ongeldig maken van cache uit te voeren.
Zie de verwante koppelingen voor meer informatie op de Dispatcher:
- hoe Dispatcher werkt en hoe te om hette installeren.
- de opties van de Configuratie beschikbaar in Dispatcher.
- Webinar op hoe Dispatcherwerkt - merk op dat sommige informatie in de presentatie op oude versies van de verzender gebaseerd is.
- Gems webinar zitting op de eigenschappen van Dispatcher, gebruik CDN en veiligheid.
- Gems zitting op nieuwere eigenschappen in Dispatcher (na v4.1.9).
Optimizing het geheime voorgeheugen van Dispatcher
Hier volgen enkele manieren om de Dispatcher-cache te optimaliseren:
-
Geheime voorgeheugen bijna alles - dit betekent geheim voorgeheugen om het even welke inhoud die meer dan eens door gebruikers zou worden gevraagd.
-
Gepersonaliseerde inhoud van het Geheime voorgeheugen voor verschillende periodes - als uw plaats gepersonaliseerde inhoud heeft dan het gebruiken van Apache Sling Dynamische Omvatin uw AEM toepassing aan hefboomwerking Ajax (Asynchrone vraag van JavaScript en van XML op browser niveau), SSI (de Zijde van de Server omvat op het niveau van de Server van het Web), en ESI (Edge-zij omvat op het niveau CDN) om verschillende delen van de pagina voor het geheime voorgeheugen onder te plaatsen van de pagina voor de pagina voor verschillende tijdsperiodes.
-
schrapt nooit het geheime voorgeheugen van Dispatcher op levende Dispatcher - als een Dispatcher levende inhoud dient en u het geheime voorgeheugen schrapt, veroorzaakt het een enorme vloed van verzoeken om terug naar AEM te gaan. Daarom mag de Dispatcher-cache nooit worden verwijderd op een live Dispatcher.
-
begin het geheime voorgeheugen - alvorens het geheime voorgeheugen van Dispatcher te schrappen, trek de Dispatcher van uw ladingsverdelingsmechanisme, schrap het geheime voorgeheugen, dan stel een Webkruiphulpmiddel in werking om dossiers op Dispatcher in het voorgeheugen onder te brengen alvorens het op het taakverdelingsmechanisme te zetten.
-
de foutenpagina's van het Geheime voorgeheugen - hefboomwerking DispatcherPassError 1(specifiek de Server van het Web Apache) richtlijn om foutenpagina's zoals 404s van het geheime voorgeheugen van Dispatcher te dienen.
-
GZip comprimeert alle dossiertypes behalve die die pre-samengeperst - in de Server van het Web Apache, mod_deflatezou kunnen worden gebruikt, maar zorg ervoor dat Variëren: Gebruiker-Agent kopbal niet wordt geplaatst. In Microsoft IIS, gebruik Dynamische Compressie.
Voorbeeld van een Apache-configuratie (waarbij alleen bepaalde inhoudstypen worden opgegeven om vooraf gecomprimeerde bestandstypen te voorkomen):
AddOutputFilterByType DEFLATE tekst/html tekst/gewone tekst/xml text/css tekst/javascript application/javascript
-
laat toe/serveStaleOnErrorin de /cache configuratie - server het oude geheim voorgeheugendossier wanneer AEM instanties fouten dienen.
-
voeg toe/GracePeriodaan de /cacheconfiguratie - bepaal het aantal seconden een schaal, auto-ongeldig gemaakt middel nog van het geheime voorgeheugen na de laatste inhoud kan gebeurtenis ("activering") publiceren worden gediend. Hierdoor wordt het aantal aanvragen verminderd dat teruggaat naar de publicatie-instanties tijdens een grote publicatiebewerking voor inhoud, zoals een structuuractivering.
-
voegt regels aan toe/ignoreUrlParams- negeer querystring parameters die niet worden vereist of door de toepassing worden gebruikt. Dit staat caching van URLs toe zelfs wanneer een querystring aanwezig is.
-
Geheime voorgeheugen de cache-Controle en de Laatst-Gewijzigde antwoordkopballen - gebruik /kopballen configuratie om de de reactiekopballen van HTTP cache-Controle en Laatst-Gewijzigd (en/of ETag kopbal in het voorgeheugen onder te brengen als u het van AEM) verzendt. Dit helpt bij het vereenvoudigen en optimaliseren van caching op CDN- en browserniveau. In cache plaatsen van deze headers zorgt dat alleen AEM de kopteksten worden ingesteld, niet de webserver zelf. Wanneer u dit doet, moet u beginnen met het verzenden van de headers vanuit de AEM toepassing.
-
inhoud van het Geheime voorgeheugen voor zo lang mogelijk en vermindert verzoeken die terug naar AEM gaan - optimaliseer flush verzoeken door het opnieuw plaatsen van flush op alle spoelagenten toe te laten. Zie hieronder sectie genoemd het Ophalen van de Duw van Dispatcher. Of gebruik /enableTTL en plaats Cachebeheer: max-age=… kopbal aan geheim voorgeheugendossiers zo lang mogelijk. Zie hierondervoor details over dit onderwerp.
Gebruikend TTLs
Vanaf Dispatcher versie 4.1.11 kan /enableTTL 1in om het even welke dossierconfiguratie worden geplaatst. Deze instelling zorgt ervoor dat de Dispatcher cache-vervaldatums respecteert die zijn ingesteld in de antwoordheader van de HTTP Cache-Control. Met andere woorden, de Dispatcher werkt net als een CDN waar de primaire vorm van cachevervalsing voorkomt wanneer de bestanden verlopen. Zodra u dit uitvoert en begint te verzenden geheime voorgeheugen-controle: max-age=… voor alle reacties van AEM, dan kunt u uw Dispatcher veilig onbruikbaar maken flush agenten in publiceren instanties.
Nadat u de functie voor het leegmaken van agents op de publicatieinstanties hebt uitgeschakeld, kunt u de Dispatcher-cache nog steeds leegmaken. In dat geval, kunt u ACS Commons gebruiken - Dispatcher Flush UI. Dit gereedschap is geïnstalleerd op de auteurinstantie. Het geeft gebruikers een UI waar zij manueel geheim voorgeheugenspoelverzoeken kunnen uitvoeren.
I. Stappen om de stijlongeldig wordingen van TTL ("Tijd aan Levend"of Verlopen) toe te laten:
- Wijzig broncode in de AEM toepassing om cache-controle kopbal en te verzenden last-Gewijzigd voor alle verzoeken waar het niet reeds plaatst is.
- Installeer Dispatcher 4.1.11 of hoger.
- Plaats /enableTTL 1 in om het even welke landbouwbedrijfconfiguratie van de plaats.
- Plaats de /kopballen configuratie om cache-controle en last-Gewijzigde kopballen in het voorgeheugen onder te brengen.
- Start de webserver opnieuw.
II. Dispatcher flush agents uitschakelen op de publish instances:
De Dispatcher gebruikt nu de header Cache-Control om de validatie van de cachebestanden te beheren. Aangezien dit het geval is, is het niet langer nodig Dispatcher uit de publicatie-instanties te spoelen.
- Ga naar /etc/replication/agents.publish.html voor elke publicatie-instantie.
- Ga naar de configuratie van elke spoelagent en maak de agent onbruikbaar.
III. Handmatige Dispatcher-aanvragen voor uitspoelen van de auteurinstantie toestaan:
Nu de spoelagenten gehandicapt zijn, zou u zich volledig op de cache-controle kopbal baseren om te controleren wanneer de inhoud op de verzender wordt verfrist. U kunt gebruikers nog steeds toestaan handmatige flushes van de Dispatcher-cache uit te voeren:
- Installeer ACS Commons - de Duw UI van Dispatcherop de auteursinstantie.
- Vorm spoelagenten op de auteursinstantie.
- In elk van de agentenconfiguraties, plaats Trekkers =
>
Gebrek negeren optie om toe te laten. Deze optie maakt de spoelagenten negeren wanneer de gebruikers (Un) Publish of (De)activeert in AEM UI klikken.
het Herhalen van de Vlek van Dispatcher
Om de Dispatcher-verzoeken om uitspoelen te optimaliseren, moeten alle Dispatcher-spoelmiddelen beschikken over een functie die de functie Uitspoelen opnieuw instellen wordt genoemd.
Ga als volgt te werk om het opnieuw ophalen van de verzender in te schakelen:
-
Ga naar http://aemhost:port /crx/packmgr/index.jsp en login als admin.
-
Download het pakket van hier.
-
Upload en installeer het pakket naar pakketbeheer.
-
Ga naar de Dispatcher flush Agent-configuratie. Bijvoorbeeld /etc/replication/agents.author/flush.html
-
Klik uitgeven
-
Het volgende instellen
- Type van rangschikking = herhaal Dispatcher Flush
- Uitgebreid =
>
Methode van HTTP = POST
-
Klik sparen
Opmerking: het hierboven geïnstalleerde pakket is slechts een eenvoudig voorbeeld. Als u het leegmaken wilt aanpassen en optimaliseren, kunt u de lijst met URI's wijzigen die door het verwijderen worden verzonden. De code is open bron en kan hierworden gevonden. De code voegt een lijst van URIs aan het verzoeklichaam als parameters toe die Dispatcher vertellen welke wegen aan re-halen. U kunt meer paden toevoegen volgens de vereisten van uw toepassing om de caching-mogelijkheden van uw site te optimaliseren.
Gedetailleerde verklaring van het re-halen flush
Normaal werkt een Dispatcher-leegloop door bestanden te verwijderen:
- Touch.stat-bestand(en)
- Verwijder /content/foo.*
- /content/foo/_jcr_content verwijderen
Vanwege het feit dat bestanden in stap 2 worden verwijderd, wordt de volgende keer dat een gebruiker een bestand zoals /content/foo.html of /content/foo.json aanvraagt, terwijl het bestand wordt "opnieuw opgehaald", de volgende aanvragen voor hetzelfde bestand ook naar de publicatie-instanties verzonden totdat het bestand in de cache wordt geplaatst. Voor trage reacties of zware verkeerspagina's zoals homepages kan dit overstromingen van de publicatiereeks veroorzaken.
Om dit probleem op te lossen, schakelt u een functie van de Dispatcher in die herophaalfunctie wordt genoemd. Met deze functie kunt u een lijst met URI's verzenden die de Dispatcher proactief moet ophalen en vervangen in plaats van te verwijderen.
Zie 22 :41-27: 05 in deze presentatieopnamevoor een demo van hoe het werkt en hoe te om het te vormen.