Hoe kan de Dispatcher-cache worden geoptimaliseerd?

Dit artikel bevat gedetailleerde instructies over de verschillende manieren om de verzendingscache te optimaliseren. Het beschrijft verder de stappen om de stijlinvalidaties van TTL ("Tijd aan Levende"of het verlopen) toe te laten, het onbruikbaar maken van verzend agenten, het terughalen van verzend verzend verzonk, onder andere.

Beschrijving description

Omgeving

Adobe Experience Manager

Problemen/symptomen

Dit artikel richt zich op de nieuwste optimalisaties in de AEM dispatcher en op de manier waarop u deze optimaal kunt benutten. De AEM dispatcher is een caching reverse, proxy server ontworpen voor gebruik met Adobe Experience Manager. Het kan als een module binnen een bestaande software van de Webserver worden geïnstalleerd en worden uitgevoerd. Op het moment dat u dit artikel schrijft, wordt dispatchermodule wordt ondersteund op Apache HTTP Server, Microsoft IIS en iPlanet.

Resolutie resolution

Hoe werkt het in cache plaatsen van Dispatcher?

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 over dispatcher:

De Dispatcher-cache optimaliseren

Hier volgen enkele manieren om de verzendingscache te optimaliseren:

  1. Bijna alles in cache plaatsen  - Dit betekent dat inhoud die meerdere keren door gebruikers wordt opgevraagd, in het cachegeheugen wordt opgeslagen.

  2. Persoonlijke inhoud voor verschillende tijdsperioden in de cache opslaan  - Als uw site persoonlijke inhoud bevat, kunt u het beste Apache Sling Dynamic Includes in uw AEM toepassing aan hefboomwerking Ajax (Asynchrone vraag JavaScript en XML op browser niveau), SSI (de Zijde van de Server omvat op het niveau van de Server van het Web), en ESI (Edge-side omvat op het niveau CDN) om verschillende delen van de pagina voor verschillende periodes in het voorgeheugen onder te brengen.

  3. De verzendingscache nooit verwijderen op een live dispatcher  - Als een verzender live-inhoud verzorgt en u de cache verwijdert, zal dit leiden tot een enorme stroom verzoeken om terug te gaan naar AEM.  Hierdoor mag de verzendingscache nooit worden verwijderd op een live verzender.

  4. Cache opknappen  - Voordat u de verzendingscache verwijdert, haalt u de verzender van het taakverdelingsmechanisme af, verwijdert u de cache en voert u vervolgens een webcrawler-gereedschap uit om bestanden in de cache op de verzender te plaatsen voordat u het taakverdelingsmechanisme activeert.

  5. Cachefoutpagina's  - Gebruik de DispatcherPassError 1 (Specifieke Apache Web Server) instructie om foutpagina's te bedienen, zoals 404s van de verzendercache.

  6. GZip comprimeert alle bestandstypen behalve die welke vooraf zijn gecomprimeerd  - in Apache Web Server, mod_deflate kan worden gebruikt, maar zorg ervoor dat  Variëren: gebruikersagent  header is niet ingesteld.  In Microsoft IIS: gebruiken Dynamische compressie.

    Voorbeeld van een Apache-configuratie (waarbij alleen bepaalde inhoudstypen worden opgegeven om vooraf gecomprimeerde bestandstypen te voorkomen):

    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript

  7. Inschakelen /serveStaleOnError   in de /cache configuratie - Geef het oude cachebestand weer wanneer AEM instanties fouten verzenden.

  8. Toevoegen /nl/respijtperiode   aan de /cache configuratie - Definieer het aantal seconden dat een niet-gevalideerde, niet-gevalideerde resource mogelijk nog steeds uit de cache wordt geladen nadat de laatste publicatiegebeurtenis voor inhoud is uitgevoerd ("activatie").  Hierdoor wordt het aantal aanvragen verminderd dat teruggaat naar de publicatie-instanties tijdens een grote publicatiebewerking voor inhoud, zoals een structuuractivering.

  9. Regels toevoegen aan /ignoreUrlParams  - Negeer querystring-parameters die niet vereist of gebruikt worden door de toepassing.  Dit staat caching van URLs toe zelfs wanneer een querystring aanwezig is.

  10. Plaats de antwoordheaders voor Cache-Control en Last-Modified (Laatst gewijzigd) in de cache  - Gebruik de  /headers  configuratie om de HTTP-antwoordheaders in cache te plaatsen  Cachebeheer  en  Laatst gewijzigd  (en/of  ETag  koptekst als uw gegevens vanuit AEM worden verzonden).  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.

  11. Inhoud zo lang mogelijk in cache plaatsen  en  vermindert verzoeken terug naar AEM  - Optimaliseer verzoeken om uitspoelen door het opnieuw uitspoelen in te schakelen op alle uitspoelmiddelen. Zie de onderste sectie getiteld Dispatcher Flush opnieuw ophalen. of gebruiken  /enableTTL  en instellen  Cache-control: max-age=…  om bestanden zo lang mogelijk in het cachegeheugen op te slaan.  Zie onder voor meer informatie over dit onderwerp.

Het gebruiken van TTLs

Vanaf Dispatcher versie 4.1.11, /enableTTL 1 kan in .any dossierconfiguratie worden geplaatst.  Met deze instelling respecteert de verzender de cachevervaldatums die zijn ingesteld in de responsheader HTTP Cache-Control.  Met andere woorden, de verzender werkt ongeveer op dezelfde manier als een CDN, waar de primaire vorm van cachevervalsing optreedt wanneer bestanden verlopen.  Zodra u dit implementeert en begint met verzenden  Cache-control: max-age=…  voor alle reacties van AEM, dan kunt u veilig uw verzender afvlakkingsagenten in publiceren instanties onbruikbaar maken.

Na het onbruikbaar maken van spoelagenten op de publiceer instanties dan kunt u nog het berichtchergeheime voorgeheugen willen kunnen leegmaken.  In dat geval kunt u ACS-komma's - Dispatcher Flush UI.  Dit gereedschap is geïnstalleerd op de auteurinstantie.  Het geeft gebruikers een UI waar zij manueel geheim voorgeheugenspoelverzoeken kunnen uitvoeren.

I. De stappen om de stijlongeldig te maken van TTL ("Tijd aan Levende" of het verlopen):

  1. Broncode in de AEM-toepassing wijzigen om te verzenden  Cachebeheer  en  Laatst gewijzigd  voor alle aanvragen waarvoor dit nog niet is ingesteld.
  2. Installeer Dispatcher 4.1.11 of hoger.
  3. Set  /enableTTL 1  in .any landbouwbedrijfconfiguratie van de plaats.
  4. Stel de  /headers  configuratie om de  Cachebeheer  en  Laatst gewijzigd  kopteksten.
  5. Start de webserver opnieuw.

II. Schakel dispatcher flush agents uit op de publicatie-instanties:

De verzender gebruikt nu de header Cache-Control om de invalidatie van de cachebestanden te beheren.  Aangezien dat het geval is, is het niet langer nodig om de verzender uit de publicatie-instanties te spoelen.

  1. Ga naar /etc/replication/agents.publish.html voor elke publicatie-instantie.
  2. Ga naar de configuratie van elke spoelagent en maak de agent onbruikbaar.

III. Handmatige verzoeken van de auteur om het verzenden van het bestand toestaan:

Nu de spoelmiddelen worden uitgeschakeld, bent u volledig afhankelijk van de  Cachebeheer  om te bepalen wanneer de inhoud op de verzender wordt vernieuwd.  U kunt gebruikers nog steeds toestaan handmatige flushes van de verzenderscache uit te geven:

  1. Installeren ACS-komma's - Dispatcher Flush UI op de auteurinstantie.
  2. Vorm spoelagenten op de auteursinstantie.
  3. In elk van de agentenconfiguraties, reeks  Triggers  =>   Standaardwaarde negeren  in te schakelen. Met deze optie worden de uitlijningsmiddelen genegeerd wanneer de gebruiker op  (Niet bekend)  of  (De)Activeren  in de AEM UI.

Dispatcher Flush opnieuw ophalen

Om de verzoeken van de de flush van de verzender te optimaliseren, zouden alle verzender agenten een eigenschap moeten hebben die het opnieuw plaatsen van blos wordt toegelaten.

Voer de volgende handelingen uit om het leegmaken van de terughaaldispatcher in te schakelen:

  1. Ga naar  http://aemhost:port/crx/packmgr/index.jsp  en aanmelden als beheerder.

  2. Download het pakket van hier.

  3. Upload en installeer het pakket naar pakketbeheer.

  4. Ga naar de configuratie van de verzendingsagent. Bijvoorbeeld  /etc/replication/agents.author/flush.html

  5. Klikken  Bewerken

  6. Het volgende instellen

    • Type serienummering  =  Dispatcher Flush opnieuw ophalen
    • Uitgebreid  =>   HTTP-methode  =  POST
  7. Klikken  Opslaan

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 een open bron en kan worden gevonden hier.  De code voegt een lijst van URIs aan het verzoeklichaam als parameters toe die verzender vertellen welke wegen om opnieuw te halen.  U kunt meer paden toevoegen volgens de vereisten van uw toepassing om de caching-mogelijkheden van uw site te optimaliseren.

Gedetailleerde uitleg van het opnieuw ophalen van de flush

Een verzender wordt normaal gesproken leeggemaakt door bestanden te verwijderen:

  1. Touch.stat-bestand(en)
  2. Verwijder /content/foo.*
  3. /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, laat een eigenschap van de verzender toe genoemd herophaalden.  Met deze functie kunt u een lijst met URI's verzenden die de verzender proactief "opnieuw ophaalt" en in plaats daarvan verwijdert.

Zie 22:41-27:05 presentatieopname voor een demo van hoe het werkt en hoe te om het te vormen.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f