Konfigurera Dispatcher configuring-dispatcher

NOTE
Dispatcher-versionerna är oberoende av AEM (Adobe Experience Manager). Du kan ha omdirigerats till den här sidan om du har följt en länk till Dispatcher-dokumentationen. Länken var inbäddad i dokumentationen för en tidigare version av AEM.

I följande avsnitt beskrivs hur du konfigurerar olika aspekter av Dispatcher.

Stöd för IPv4 och IPv6 support-for-ipv-and-ipv

Alla element i AEM och Dispatcher kan installeras i både IPv4- och IPv6-nätverk. Se IPV4 och IPV6.

Dispatcher konfigurationsfiler dispatcher-configuration-files

Som standard lagras Dispatcher-konfigurationen i textfilen dispatcher.any, men du kan ändra namn och plats för filen under installationen.

Konfigurationsfilen innehåller en serie egenskaper med ett eller flera värden som styr Dispatcher beteende:

  • Egenskapsnamnen har ett snedstreck (/) som prefix.
  • Egenskaper med flera värden omsluter underordnade objekt med klammerparenteser { }.

En exempelkonfiguration är strukturerad på följande sätt:

# name of the dispatcher
/name "internet-server"

# each farm configures a set off (loadbalanced) renders
/farms
 {
  # first farm entry (label is not important, just for your convenience)
   /website
     {
     /clientheaders
       {
       # List of headers that are passed on
       }
     /virtualhosts
       {
       # List of URLs for this Web site
       }
     /sessionmanagement
       {
       # settings for user authentification
       }
     /renders
       {
       # List of AEM instances that render the documents
       }
     /filter
       {
       # List of filters
       }
     /vanity_urls
       {
       # List of vanity URLs
       }
     /cache
       {
       # Cache configuration
       /rules
         {
         # List of cachable documents
         }
       /invalidate
         {
         # List of auto-invalidated documents
         }
       }
     /statistics
       {
       /categories
         {
         # The document categories that are used for load balancing estimates
         }
       }
     /stickyConnectionsFor "/myFolder"
     /health_check
       {
       # Page gets contacted when an instance returns a 500
       }
     /retryDelay "1"
     /numberOfRetries "5"
     /unavailablePenalty "1"
     /failover "1"
     }
 }

Du kan inkludera andra filer som bidrar till konfigurationen:

  • Om konfigurationsfilen är stor kan du dela upp den i flera mindre filer (som är enklare att hantera) och inkludera alla.
  • Inkludera filer som genereras automatiskt.

Om du till exempel vill ta med filen myFarm.any i konfigurationen /farms använder du följande kod:

/farms
  {
  $include "myFarm.any"
  }

Använd asterisken (*) som jokertecken om du vill ange ett intervall med filer som ska inkluderas.

Om filerna farm_1.any till farm_5.any till exempel innehåller konfigurationen av grupperna ett till fem kan du inkludera dem så här:

/farms
  {
  $include "farm_*.any"
  }

Använda miljövariabler using-environment-variables

Du kan använda miljövariabler i egenskaper med strängvärden i dispatcher.any-filen i stället för att hårdkoda värdena. Använd formatet ${variable_name} om du vill inkludera värdet för en miljövariabel.

Om till exempel filen dispatcher.any finns i samma katalog som cachekatalogen kan följande värde för egenskapen docroot användas:

/docroot "${PWD}/cache"

Om du till exempel skapar en miljövariabel med namnet PUBLISH_IP som lagrar värdnamnet för den AEM publiceringsinstansen kan följande konfiguration av egenskapen /renders användas:

/renders {
  /0001 {
    /hostname "${PUBLISH_IP}"
    /port "8443"
  }
}

Namnge Dispatcher-instansen naming-the-dispatcher-instance-name

Använd egenskapen /name för att ange ett unikt namn som identifierar din Dispatcher-instans. Egenskapen /name är en egenskap på den översta nivån i konfigurationsstrukturen.

Definiera grupper defining-farms-farms

Egenskapen /farms definierar en eller flera uppsättningar Dispatcher-beteenden, där varje uppsättning är associerad med olika webbplatser eller URL-adresser. Egenskapen /farms kan innehålla en eller flera grupper:

  • Använd en enda servergrupp när du vill att Dispatcher ska hantera alla dina webbsidor eller webbplatser på samma sätt.
  • Skapa flera servergrupper när olika delar av webbplatsen eller olika webbplatser kräver olika Dispatcher-beteenden.

Egenskapen /farms är en egenskap på den översta nivån i konfigurationsstrukturen. Om du vill definiera en servergrupp lägger du till en underordnad egenskap i egenskapen /farms. Använd ett egenskapsnamn som unikt identifierar servergruppen i Dispatcher-instansen.

Egenskapen /farmname har flera värden och innehåller andra egenskaper som definierar Dispatcher-beteendet:

  • URL:erna för de sidor som servergruppen gäller för.
  • En eller flera tjänst-URL:er (vanligtvis AEM publiceringsinstanser) som används för att återge dokument.
  • Statistik som ska användas för belastningsutjämning av flera dokumentåtergivare.
  • Flera andra beteenden, till exempel vilka filer som ska cachelagras och var de ska cachelagras.

Värdet kan innehålla alla alfanumeriska tecken (a-z, 0-9). I följande exempel visas skelettdefinitionen för två grupper som heter /daycom och /docsdaycom:

#name of dispatcher
/name "day sites"

#farms section defines a list of farms or sites
/farms
{
   /daycom
   {
       ...
   }
   /docdaycom
   {
      ...
   }
}
NOTE
Om du använder mer än en renderingsgrupp utvärderas listan längst ned. Det här flödet är relevant när du definierar virtuella värdar för dina webbplatser.

Varje gruppegenskap kan innehålla följande underordnade egenskaper:

Egenskapsnamn
Beskrivning
/hemsida
Standardstartsida (valfritt) (endast IIS)
/clientheaders
Rubrikerna från klientens HTTP-begäran som ska skickas.
/virtualhosts
Den här servergruppens virtuella värdar.
/sessionmanagement
Stöd för sessionshantering och autentisering.
/renders
Servrarna som tillhandahåller återgivna sidor (vanligtvis AEM publiceringsinstanser).
/filter
Definierar de URL:er som Dispatcher aktiverar åtkomst till.
/vanity_urls
Konfigurerar åtkomst till mål-URL:er.
/spridateSyndPost
Stöd för vidarebefordran av syndikeringsbegäranden.
/cache
Konfigurerar cachelagring.
/statistik
Definiera statistikkategorier för belastningsutjämningsberäkningar.
/stickyConnectionsFor
Mappen som innehåller anteckningsdokument.
/health_check
Den URL som ska användas för att fastställa servertillgängligheten.
/retryDelay
Fördröjningen innan ett nytt försök att ansluta misslyckades.
/unavailablePenalty
Påföljder som påverkar statistik för belastningsutjämningsberäkningar.
/failover
Skicka om begäranden till olika återgivningar när den ursprungliga begäran misslyckas.
/auth_checker
Information om behörighetskänslig cachelagring finns i Cachelagra skyddat innehåll.

Ange en standardsida (endast IIS) - /homepage specify-a-default-page-iis-only-homepage

CAUTION
Parametern /homepage (endast IIS) fungerar inte längre. Använd i stället IIS URL Rewrite Module.
Om du använder Apache bör du använda modulen mod_rewrite. Information om mod_rewrite finns i dokumentationen för Apache-webbplatsen (till exempel Apache 2.4). När du använder mod_rewrite bör du använda flaggan genomgång|PT (skicka till nästa hanterare) för att tvinga omskrivningsmotorn att ange uri-fältet i den interna request_rec-strukturen till värdet för fältet filename.

Ange vilka HTTP-huvuden som ska passera igenom specifying-the-http-headers-to-pass-through-clientheaders

Egenskapen /clientheaders definierar en lista med HTTP-huvuden som Dispatcher skickar från klientens HTTP-begäran till återgivaren (AEM instans).

Som standard vidarebefordrar Dispatcher standardrubrikerna för HTTP till AEM. I vissa fall kanske du vill vidarebefordra ytterligare rubriker eller ta bort specifika rubriker:

  • Lägg till rubriker, t.ex. anpassade rubriker, som din AEM förväntar sig i HTTP-begäran.
  • Ta bort rubriker, t.ex. autentiseringsrubriker som bara är relevanta för webbservern.

Om du anpassar uppsättningen rubriker som ska skickas måste du ange en uttömmande lista över rubriker, inklusive de rubriker som normalt inkluderas som standard.

En Dispatcher-instans som hanterar sidaktiveringsbegäranden för publiceringsinstanser kräver till exempel rubriken PATH i avsnittet /clientheaders. Rubriken PATH möjliggör kommunikation mellan replikeringsagenten och Dispatcher.

Följande kod är ett exempel på konfiguration för /clientheaders:

/clientheaders
  {
  "CSRF-Token"
  "X-Forwarded-Proto"
  "referer"
  "user-agent"
  "authorization"
  "from"
  "content-type"
  "content-length"
  "accept-charset"
  "accept-encoding"
  "accept-language"
  "accept"
  "host"
  "max-forwards"
  "proxy-authorization"
  "proxy-connection"
  "range"
  "cookie"
  "cq-action"
  "cq-handle"
  "handle"
  "action"
  "cqstats"
  "depth"
  "translate"
  "expires"
  "date"
  "dav"
  "ms-author-via"
  "if"
  "lock-token"
  "x-expected-entity-length"
  "destination"
  "PATH"
  }

Identifiera virtuella värdar identifying-virtual-hosts-virtualhosts

Egenskapen /virtualhosts definierar en lista över alla värdnamn och URI-kombinationer som Dispatcher accepterar för den här servergruppen. Du kan använda asterisken (*) som jokertecken. Värden för egenskapen /virtualhosts har följande format:

[scheme]host[uri][*]

I följande exempel hanteras begäranden för domänerna .com och .ch för myCompany och alla domäner för mySubDivision:

   /virtualhosts
    {
    "www.myCompany.com"
    "www.myCompany.ch"
    "www.mySubDivison.*"
    }

Följande konfiguration hanterar alla-begäranden:

   /virtualhosts
    {
    "*"
    }

Matchar den virtuella värden resolving-the-virtual-host

När Dispatcher tar emot en HTTP- eller HTTPS-begäran hittar den det virtuella värdvärdet som bäst matchar begärans host, uri- och scheme-huvuden. Dispatcher utvärderar värdena i egenskaperna virtualhosts i följande ordning:

  • Dispatcher börjar längst ned i servergruppen och fortsätter uppåt i filen dispatcher.any.
  • För varje servergrupp börjar Dispatcher med det översta värdet i egenskapen virtualhosts och går nedåt i listan över värden.

Dispatcher hittar det mest matchande virtuella värdvärdet på följande sätt:

  • Den första påträffade virtuella värden som matchar alla tre av host, scheme och uri för begäran används.
  • Om inga virtualhosts-värden har scheme och uri delar som matchar både scheme och uri i begäran, används den första påträffade virtuella värden som matchar host i begäran.
  • Om inga virtualhosts-värden har en värddel som matchar värddatorn för begäran, används den översta virtuella värddatorn för den översta servergruppen.

Därför bör du placera din virtuella standardvärd högst upp i egenskapen virtualhosts. Lägg till den i den översta servergruppen för din dispatcher.any-fil.

Exempel på virtuell värdupplösning example-virtual-host-resolution

Följande exempel representerar ett utdrag från en dispatcher.any-fil som definierar två Dispatcher-grupper, och varje servergrupp definierar en virtualhosts -egenskap.

/farms
  {
  /myProducts
    {
    /virtualhosts
      {
      "www.mycompany.com/products/*"
      }
    /renders
      {
      /hostname "server1.myCompany.com"
      /port "80"
      }
    }
  /myCompany
    {
    /virtualhosts
      {
      "www.mycompany.com"
      }
    /renders
      {
      /hostname "server2.myCompany.com"
      /port "80"
      }
    }
  }

I följande tabell visas de virtuella värdarna som matchas för de angivna HTTP-begäranden:

Begär URL
Löst virtuellt värdsystem
https://www.mycompany.com/products/gloves.html
www.mycompany.com/products/
https://www.mycompany.com/about.html
www.mycompany.com

Aktiverar säkra sessioner - /sessionmanagement enabling-secure-sessions-sessionmanagement

CAUTION
/allowAuthorized Ange som "0" i avsnittet /cache om du vill aktivera den här funktionen. Så som anges i avsnittet Cachelagring när autentisering används, cachelagras inte när du anger /allowAuthorized 0 begäranden som innehåller autentiseringsinformation. Om behörighetskänslig cachelagring krävs, se sidan Cachelagra skyddat innehåll.

Skapa en säker session för åtkomst till renderingsgruppen så att användarna måste logga in för att komma åt alla sidor i gruppen. När användaren har loggat in kan han/hon komma åt sidor i servergruppen. Mer information om hur du använder den här funktionen med CUG:er finns i Skapa en stängd användargrupp. Se även Dispatcher checklista för säkerhet innan du publicerar.

Egenskapen /sessionmanagement är en underegenskap till /farms.

CAUTION
Om olika åtkomstkrav gäller för olika delar av webbplatsen måste du definiera flera grupper.

/sessionmanagement har flera underparametrar:

/katalog (obligatoriskt)

Katalogen som lagrar sessionsinformationen. Om katalogen inte finns skapas den.

CAUTION
När du konfigurerar katalogunderparametern pekar inte till rotmappen (/directory "/") eftersom det kan orsaka allvarliga problem. Ange alltid sökvägen till den mapp som lagrar sessionsinformationen. Till exempel:
/sessionmanagement
  {
  /directory "/usr/local/apache/.sessions"
  }

/encode (valfritt)

Hur sessionsinformationen kodas. Använd md5 för kryptering med md5-algoritmen eller hex för hexadecimal kodning. Om du krypterar sessionsdata kan en användare med åtkomst till filsystemet inte läsa sessionsinnehållet. Standardvärdet är md5.

/header (valfritt)

Namnet på HTTP-huvudet eller cookien som lagrar auktoriseringsinformationen. Om du lagrar informationen i http-huvudet använder du HTTP:<header-name>. Om du vill lagra informationen i en cookie använder du Cookie:<header-name>. Om du inte anger något värde används HTTP:authorization.

/timeout (valfritt)

Antalet sekunder tills sessionen tar slut efter att den har använts sist. Om "800" inte anges används, så sessionen tar lite tid över 13 minuter efter användarens senaste begäran.

Ett exempel på konfiguration ser ut så här:

/sessionmanagement
  {
  /directory "/usr/local/apache/.sessions"
  /encode "md5"
  /header "HTTP:authorization"
  /timeout "800"
  }

Definiera sidåtergivare defining-page-renderers-renders

Egenskapen /renders definierar den URL som Dispatcher skickar begäranden till för att återge ett dokument. I följande exempel /renders identifieras en enda AEM för återgivning:

/renders
  {
    /myRenderer
      {
      # hostname or IP of the renderer
      /hostname "aem.myCompany.com"
      # port of the renderer
      /port "4503"
      # connection timeout in milliseconds, "0" (default) waits indefinitely
      /timeout "0"
      }
  }

I följande exempelavsnitt /renders identifieras en AEM som körs på samma dator som Dispatcher:

/renders
  {
    /myRenderer
     {
     /hostname "127.0.0.1"
     /port "4503"
     }
  }

I följande exempel /renders distribueras återgivningsbegäranden lika mellan två AEM instanser:

/renders
  {
    /myFirstRenderer
      {
      /hostname "aem.myCompany.com"
      /port "4503"
      }
    /mySecondRenderer
      {
      /hostname "127.0.0.1"
      /port "4503"
      }
  }

Återgivningsalternativ renders-options

/timeout

Anger timeout för anslutningen som använder AEM i millisekunder. Standardvärdet är "0", vilket gör att Dispatcher väntar oändligt.

/receiveTimeout

Anger tiden i millisekunder som ett svar får ta. Standardvärdet är "600000", vilket gör att Dispatcher väntar i 10 minuter. En inställning på "0" tar bort tidsgränsen.

Om tidsgränsen nås när svarshuvuden tolkas returneras HTTP-statusen 504 (Felaktig gateway). Om tidsgränsen nås när svarstexten läses, returnerar Dispatcher det ofullständiga svaret till klienten. Eventuella cachelagrade filer som kan ha skrivits tas också bort.

/ipv4

Anger om Dispatcher använder funktionen getaddrinfo (för IPv6) eller funktionen gethostbyname (för IPv4) för att hämta återgivningens IP-adress. Värdet 0 gör att getaddrinfo används. Värdet 1 gör att gethostbyname används. Standardvärdet är 0.

Funktionen getaddrinfo returnerar en lista med IP-adresser. Dispatcher itererar listan över adresser tills en TCP/IP-anslutning upprättas. Därför är egenskapen ipv4 viktig när återgivningsvärdnamnet är associerat med flera IP-adresser. Värden returnerar dessutom, som svar på funktionen getaddrinfo, en lista över IP-adresser som alltid finns i samma ordning. I det här fallet bör du använda funktionen gethostbyname så att IP-adressen som Dispatcher ansluter till är slumpmässig.

Amazon Elastic Load Balancing (ELB) är en tjänst som svarar på getaddrinfo med en lista över IP-adresser som kan vara i samma ordning.

/säker

Om egenskapen /secure har värdet "1" använder Dispatcher HTTPS för att kommunicera med AEM. Mer information finns i Konfigurera Dispatcher att använda SSL.

/always-resolve

Med Dispatcher version 4.1.6 kan du konfigurera egenskapen /always-resolve enligt följande:

  • När värdet är "1" tolkas värdnamnet på varje begäran (Dispatcher cachelagrar aldrig någon IP-adress). Det kan uppstå en liten prestandapåverkan på grund av det ytterligare anrop som krävs för att få värdinformation för varje begäran.
  • Om egenskapen inte anges cache-lagras IP-adressen som standard.

Den här egenskapen kan även användas om du stöter på problem med dynamisk IP-upplösning, vilket visas i följande exempel:

/renders {
  /0001 {
     /hostname "host-name-here"
     /port "4502"
     /ipv4 "1"
     /always-resolve "1"
     }
  }

Konfigurera åtkomst till innehåll configuring-access-to-content-filter

Använd avsnittet /filter för att ange de HTTP-begäranden som Dispatcher godkänner. Alla andra begäranden skickas tillbaka till webbservern med felkoden 404 (sidan hittades inte). Om det inte finns något /filter-avsnitt accepteras alla begäranden.

Obs! Begäranden för statfile nekas alltid.

CAUTION
Se Dispatcher Security Checklist för mer information om begränsningar av åtkomst med AEM Dispatcher. Läs även AEM Security Checklist om du vill ha mer säkerhetsinformation om din AEM installation.

Avsnittet /filter består av en serie regler som antingen nekar eller tillåter åtkomst till innehåll enligt mönster i begärandoradsdelen av HTTP-begäran. Använd en tillåtelselista-strategi för ditt /filter-avsnitt:

  • Förhindra åtkomst till allt.
  • Tillåt åtkomst till innehåll efter behov.
NOTE
Rensa cacheminnet när filterreglerna ändras.

Definiera ett filter defining-a-filter

Varje objekt i avsnittet /filter innehåller en typ och ett mönster som matchas med ett visst element i förfrågningsraden eller hela förfrågningsraden. Varje filter kan innehålla följande objekt:

  • Typ: /type anger om åtkomst ska beviljas eller nekas för begäranden som matchar mönstret. Värdet kan vara antingen allow eller deny.

  • Element i begäranderaden: Inkludera /method, /url, /query eller /protocol. Ta även med ett mönster för filtreringsbegäranden. Filtrera dem efter specifika delar av begärandoradsdelen i HTTP-begäran. Filtrering för element på begärandraden (i stället för på hela begärandraden) är den föredragna filtermetoden.

  • Avancerade element i begärandoraden: Från och med Dispatcher 4.2.0 finns fyra nya filterelement att använda. De nya elementen är /path, /selectors, /extension och /suffix. Inkludera ett eller flera av dessa objekt för ytterligare kontroll av URL-mönster.

NOTE
Mer information om vilken del av förfrågningsraden som var och en av dessa element refererar till finns på wiki-sidan Sling URL Decomposition .
  • globegenskapen: Egenskapen /glob används för att matcha hela förfrågningsraden i HTTP-begäran.
CAUTION
Filtrering med glober är föråldrat i Dispatcher. Därför bör du undvika att använda globala ikoner i /filter-avsnitten eftersom det kan leda till säkerhetsproblem. I stället för:
/glob "* *.css *"
Använd
/url "*.css"

Begärandelen av HTTP-begäranden the-request-line-part-of-http-requests

HTTP/1.1 definierar request-line enligt följande:

Method Request-URI HTTP-Version<CRLF>

Tecknen <CRLF> representerar en vagnretur följt av en radmatning. Följande exempel är den frågerad som tas emot när en klient begär sidan amerikansk-engelska på WKND-webbplatsen:

GET /content/wknd/us/en.html HTTP.1.1<CRLF>

Dina mönster måste ta hänsyn till blankstegstecknen på raden med begäran och tecknen <CRLF>.

Dubbla citattecken jämfört med enkla citattecken double-quotes-vs-single-quotes

När du skapar filterregler använder du citattecken "pattern" för enkla mönster. Om du använder Dispatcher 4.2.0 eller senare och mönstret innehåller ett reguljärt uttryck, måste du omsluta regex-mönstret '(pattern1|pattern2)' med enkla citattecken.

Reguljära uttryck regular-expressions

I Dispatcher-versioner senare än 4.2.0 kan du inkludera utökade reguljära uttryck för POSIX i dina filtermönster.

Felsöka filter troubleshooting-filters

Om dina filter inte aktiveras på rätt sätt aktiverar du Trace Logging på Dispatcher så att du kan se vilket filter som fångar upp begäran.

Exempelfilter: Neka alla example-filter-deny-all

Följande exempelfilteravsnitt gör att Dispatcher nekar begäranden för alla filer. Neka åtkomst till alla filer och tillåt sedan åtkomst till specifika områden.

/0001  { /type "deny" /url "*"  }

Begäranden till ett explicit nekat område resulterar i att 404-felkoden (sidan hittades inte) returneras.

Exempelfilter: Neka åtkomst till specifika områden example-filter-deny-access-to-specific-areas

Med filter kan du också neka åtkomst till olika element, till exempel ASP-sidor och känsliga områden i en publiceringsinstans. Följande filter nekar åtkomst till ASP-sidor:

/0002  { /type "deny" /url "*.asp"  }

Exempelfilter: Aktivera begäranden om POST example-filter-enable-post-requests

Följande exempelfilter tillåter att formulärdata skickas med metoden POST:

/filter {
    /0001  { /glob "*" /type "deny" }
    /0002 { /type "allow" /method "POST" /url "/content/[.]*.form.html" }
}

Exempelfilter: Tillåt åtkomst till arbetsflödeskonsolen example-filter-allow-access-to-the-workflow-console

I följande exempel visas ett filter som används för att ge extern åtkomst till arbetsflödeskonsolen:

/filter {
    /0001  { /glob "*" /type "deny" }
    /0002  {  /type "allow"  /url "/libs/cq/workflow/content/console*"  }
}

Om publiceringsinstansen använder en webbprogramkontext (till exempel publicera) kan den också läggas till i filterdefinitionen.

/0003   { /type "deny"  /url "/publish/libs/cq/workflow/content/console/archive*"  }

Om du måste komma åt enstaka sidor inom det begränsade området kan du tillåta åtkomst till dem. Om du till exempel vill tillåta åtkomst till fliken Arkiv i arbetsflödeskonsolen lägger du till följande avsnitt:

/0004  { /type "allow"  /url "/libs/cq/workflow/content/console/archive*"   }
NOTE
När flera filtermönster används i en begäran gäller det senast använda filtermönstret.

Exempelfilter: Använda reguljära uttryck example-filter-using-regular-expressions

Det här filtret aktiverar tillägg i icke-offentliga innehållskataloger med hjälp av ett reguljärt uttryck, som definieras här mellan enkla citattecken:

/005  {  /type "allow" /extension '(css|gif|ico|js|png|swf|jpe?g)' }

Exempelfilter: Filtrera extra element för en URL för en begäran example-filter-filter-additional-elements-of-a-request-url

Nedan visas ett regelexempel som blockerar innehåll som hämtas från sökvägen /content och dess underträd, med filter för sökväg, väljare och tillägg:

/006 {
        /type "deny"
        /path "/content/*"
        /selectors '(feed|rss|pages|languages|blueprint|infinity|tidy|sysview|docview|query|jcr:content|_jcr_content|search|childrenlist|ext|assets|assetsearch|[0-9-]+)'
        /extension '(json|xml|html|feed))'
        }

Exempel på /filter-avsnitt example-filter-section

Begränsa den externa åtkomsten så mycket som möjligt när du konfigurerar Dispatcher. Följande exempel ger minimal åtkomst för externa besökare:

  • /content

  • olika innehåll, t.ex. design och klientbibliotek. Till exempel:

    • /etc/designs/default*
    • /etc/designs/mydesign*

När du har skapat filter testar du sidåtkomst för att kontrollera att AEM är säker.

Följande /filter-avsnitt i dispatcher.any-filen kan användas som bas i din Dispatcher-konfigurationsfil.

Det här exemplet baseras på standardkonfigurationsfilen som medföljer Dispatcher och är avsedd som exempel för användning i en produktionsmiljö. Objekt som föregås av # inaktiveras (kommenteras bort). Du bör vara försiktig om du bestämmer dig för att aktivera något av dessa objekt (genom att ta bort # på den raden). Om du gör det kan det påverka säkerheten.

Neka åtkomst till allt och tillåt sedan åtkomst till specifika (begränsade) element:

  /filter
      {
      # Deny everything first and then allow specific entries
      /0001  { /type "deny" /url "*"  }

      # Open consoles
#     /0011 { /type "allow" /url "/admin/*"  }  # allow servlet engine admin
#     /0012 { /type "allow" /url "/crx/*"    }  # allow content repository
#     /0013 { /type "allow" /url "/system/*" }  # allow OSGi console

      # Allow non-public content directories
#     /0021 { /type "allow" /url "/apps/*"   }  # allow apps access
#     /0022 { /type "allow" /url "/bin/*"    }
      /0023 { /type "allow" /url "/content*" }  # disable this rule to allow mapped content only

#     /0024 { /type "allow" /url "/libs/*"   }
#     /0025 { /type "deny"  /url "/libs/shindig/proxy*" } # if you enable /libs close access to proxy

#     /0026 { /type "allow" /url "/home/*"   }
#     /0027 { /type "allow" /url "/tmp/*"    }
#     /0028 { /type "allow" /url "/var/*"    }

      # Enable extensions in non-public content directories, using a regular expression
      /0041
        {
        /type "allow"
        /extension '(css|gif|ico|js|png|swf|jpe?g)'
        }

      # Enable features
      /0062 { /type "allow" /url "/libs/cq/personalization/*"  }  # enable personalization

      # Deny content grabbing, on all accessible pages, using regular expressions
      /0081
        {
        /type "deny"
        /selectors '((sys|doc)view|query|[0-9-]+)'
        /extension '(json|xml)'
        }
      # Deny content grabbing for /content and its subtree
      /0082
        {
        /type "deny"
        /path "/content/*"
        /selectors '(feed|rss|pages|languages|blueprint|infinity|tidy)'
        /extension '(json|xml|html)'
        }

#     /0087 { /type "allow" /method "GET" /extension 'json' "*.1.json" }  # allow one-level json requests
}
NOTE
När du använder Apache utformar du dina filter-URL-mönster enligt egenskapen DispatcherUseProcsedURL i Dispatcher-modulen. (Se Apache-webbserver - Konfigurera Apache-webbservern för Dispatcher.)

Tänk på följande om du väljer att utöka åtkomsten:

  • Inaktivera extern åtkomst till /admin om du använder CQ version 5.4 eller tidigare.

  • Du måste vara försiktig när du tillåter åtkomst till filer i /libs. Åtkomst bör tillåtas på individuell basis.

  • Neka åtkomst till replikeringskonfigurationen så att den inte kan ses:

    • /etc/replication.xml*
    • /etc/replication.infinity.json*
  • Neka åtkomst till Google Gadgets omvänd proxy:

    • /libs/opensocial/proxy*

Beroende på installationen kan det finnas fler resurser under /libs, /apps eller någon annanstans som måste göras tillgängliga. Du kan använda filen access.log som en metod för att avgöra vilka resurser som ska användas externt.

CAUTION
Åtkomst till konsoler och kataloger kan utgöra en säkerhetsrisk för produktionsmiljöer. Om du inte har en explicit motivering ska de förbli inaktiverade (kommenterade ut).
CAUTION
Om du använder rapporter i en publiceringsmiljö bör du konfigurera Dispatcher att neka åtkomst till /etc/reports för externa besökare.

Begränsa frågesträngar restricting-query-strings

Sedan Dispatcher version 4.1.5 använder du avsnittet /filter för att begränsa frågesträngar. Vi rekommenderar att du uttryckligen tillåter frågesträngar och exkluderar generiska reserveringar via allow filterelement.

En enskild post kan ha antingen glob eller en kombination av method, url, query och version, men inte båda. I följande exempel tillåts frågesträngen a=* och alla andra frågesträngar för URL:er som tolkas till noden /etc nekas:

/filter {
 /0001 { /type "deny" /method "POST" /url "/etc/*" }
 /0002 { /type "allow" /method "GET" /url "/etc/*" /query "a=*" }
}
NOTE
Om en regel innehåller en /query matchar den bara begäranden som innehåller en frågesträng och matchar det angivna frågemönstret.
Om begäranden till /etc som inte har någon frågesträng också ska tillåtas i ovanstående exempel krävs följande regler:
/filter {
>/0001 { /type "deny" /method "*" /url "/path/*" }
>/0002 { /type "allow" /method "GET" /url "/path/*" }
>/0003 { /type "deny" /method "GET" /url "/path/*" /query "*" }
>/0004 { /type "allow" /method "GET" /url "/path/*" /query "a=*" }
}

Testa Dispatcher Security testing-dispatcher-security

Dispatcher-filter bör blockera åtkomst till följande sidor och skript AEM publiceringsinstanser. Använd en webbläsare för att försöka öppna följande sidor som en besökare skulle göra och verifiera att koden 404 returneras. Justera filtren om du får andra resultat.

Du bör se normal sidåtergivning för /content/add_valid_page.html?debug=layout.

  • /admin
  • /system/console
  • /dav/crx.default
  • /crx
  • /bin/crxde/logs
  • /jcr:system/jcr:versionStorage.json
  • /_jcr_system/_jcr_versionStorage.json
  • /libs/wcm/core/content/siteadmin.html
  • /libs/collab/core/content/admin.html
  • /libs/cq/ui/content/dumplibs.html
  • /var/linkchecker.html
  • /etc/linkchecker.html
  • /home/users/a/admin/profile.json
  • /home/users/a/admin/profile.xml
  • /libs/cq/core/content/login.json
  • /content/../libs/foundation/components/text/text.jsp
  • /content/.{.}/libs/foundation/components/text/text.jsp
  • /apps/sling/config/org.apache.felix.webconsole.internal.servlet.OsgiManager.config/jcr%3acontent/jcr%3adata
  • /libs/foundation/components/primary/cq/workflow/components/participants/json.GET.servlet
  • /content.pages.json
  • /content.languages.json
  • /content.blueprint.json
  • /content.-1.json
  • /content.10.json
  • /content.infinity.json
  • /content.tidy.json
  • /content.tidy.-1.blubber.json
  • /content/dam.tidy.-100.json
  • /content/content/geometrixx.sitemap.txt
  • /content/add_valid_page.query.json?statement=//*
  • /content/add_valid_page.qu%65ry.js%6Fn?statement=//*
  • /content/add_valid_page.query.json?statement=//*[@transportPassword]/(@transportPassword%20|%20@transportUri%20|%20@transportUser)
  • /content/add_valid_path_to_a_page/_jcr_content.json
  • /content/add_valid_path_to_a_page/jcr:content.json
  • /content/add_valid_path_to_a_page/_jcr_content.feed
  • /content/add_valid_path_to_a_page/jcr:content.feed
  • /content/add_valid_path_to_a_page/pagename._jcr_content.feed
  • /content/add_valid_path_to_a_page/pagename.jcr:content.feed
  • /content/add_valid_path_to_a_page/pagename.docview.xml
  • /content/add_valid_path_to_a_page/pagename.docview.json
  • /content/add_valid_path_to_a_page/pagename.sysview.xml
  • /etc.xml
  • /content.feed.xml
  • /content.rss.xml
  • /content.feed.html
  • /content/add_valid_page.html?debug=layout
  • /projects
  • /tagging
  • /etc/replication.html
  • /etc/cloudservices.html
  • /welcome

Om du vill avgöra om anonym skrivåtkomst är aktiverat skickar du följande kommando i en terminal eller kommandotolk. Det går inte att skriva data till noden.

curl -X POST "https://anonymous:anonymous@hostname:port/content/usergenerated/mytestnode"

Om du vill försöka göra Dispatcher-cachen ogiltig och försäkra dig om att du får ett code 403-svar skickar du följande kommando i en terminal eller kommandotolk:

curl -H "CQ-Handle: /content" -H "CQ-Path: /content" https://yourhostname/dispatcher/invalidate.cache

Aktivera åtkomst till Vanity-URL:er enabling-access-to-vanity-urls-vanity-urls

Konfigurera Dispatcher så att du kan få åtkomst till URL:er som är konfigurerade för dina AEM.

När åtkomst till tillfälliga URL:er är aktiverat, anropar Dispatcher regelbundet en tjänst som körs på återgivningsinstansen för att få en lista över tillfälliga URL:er. Dispatcher sparar listan i en lokal fil. När en begäran om en sida nekas på grund av ett filter i avsnittet /filter, läser Dispatcher igenom listan med användar-URL:er. Om den nekade URL:en finns med i listan, tillåter Dispatcher åtkomst till fågel-URL:en.

Om du vill aktivera åtkomst till mål-URL:er lägger du till ett /vanity_urls-avsnitt i avsnittet /farms, som i följande exempel:

 /vanity_urls {
      /url "/libs/granite/dispatcher/content/vanityUrls.html"
      /file "/tmp/vanity_urls"
      /delay 300
 }

Avsnittet /vanity_urls innehåller följande egenskaper:

  • /url: Sökvägen till den överordnade URL-tjänst som körs på återgivningsinstansen. Egenskapens värde måste vara "/libs/granite/dispatcher/content/vanityUrls.html".

  • /file: Sökvägen till den lokala filen där Dispatcher lagrar listan över huvud-URL:er. Kontrollera att Dispatcher har skrivbehörighet till den här filen.

  • /delay: (sekunder) Tiden mellan anrop till tjänsten för huvud-URL.

NOTE
Om din återgivning är en instans av AEM måste du installera paketet VanityURLS-Components från Software Distribution för att aktivera tjänsten för huvud-URL. (Mer information finns i Programvarudistribution.)

Använd följande procedur för att aktivera åtkomst till mål-URL:er.

  1. Om din renderingstjänst är en AEM instans installerar du paketet com.adobe.granite.dispatcher.vanityurl.content på publiceringsinstansen (se anmärkningen ovan).
  2. Kontrollera att konfigurationen av /filter nekar URL:en för varje mål-URL som du har konfigurerat för en AEM- eller CQ-sida. Om det behövs lägger du till ett filter som nekar URL-adressen.
  3. Lägg till avsnittet /vanity_urls nedanför /farms.
  4. Starta om Apache-webbservern.

Vidarebefordrar syndikeringsbegäranden - /propagateSyndPost forwarding-syndication-requests-propagatesyndpost

Syndikeringsbegäranden är endast avsedda för Dispatcher, så som standard skickas de inte till återgivaren (till exempel en AEM).

Om det behövs ställer du in egenskapen /propagateSyndPost"1" för att vidarebefordra syndikeringsbegäranden till Dispatcher. Om den är inställd måste du se till att begäranden om POST inte nekas i filteravsnittet.

Konfigurerar Dispatcher-cachen - /cache configuring-the-dispatcher-cache-cache

Avsnittet /cache styr hur Dispatcher cachelagrar dokument. Konfigurera flera underegenskaper för att implementera dina cachningsstrategier:

  • /docroot
  • /statfile
  • /serveStaleOnError
  • /allowAuthorized
  • /rules
  • /statfileslevel
  • /invalidate
  • /invalidateHandler
  • /allowedClients
  • /ignoreUrlParams
  • /headers
  • /mode
  • /gracePeriod
  • /enableTTL

Ett exempel på cacheavsnitt kan se ut så här:

/cache
  {
  /docroot "/opt/dispatcher/cache"
  /statfile  "/tmp/dispatcher-website.stat"
  /allowAuthorized "0"

  /rules
    {
    # List of files that are cached
    }

  /invalidate
    {
    # List of files that are auto-invalidated
    }
  }
NOTE
Läs Cachelagring av skyddat innehåll för behörighetskänslig cachning.

Ange cachekatalogen specifying-the-cache-directory

Egenskapen /docroot identifierar katalogen där cachelagrade filer lagras.

NOTE
Värdet måste vara samma sökväg som dokumentroten på webbservern så att Dispatcher och webbservern hanterar samma filer.
Webbservern ansvarar för att leverera rätt statuskod när cachefilen för Dispatcher används, det är därför det är viktigt att den också kan hitta den.

Om du använder flera grupper måste varje grupp ha en annan dokumentrot.

Namnge statusfilen naming-the-statfile

Egenskapen /statfile identifierar den fil som ska användas som statusfil. Dispatcher använder den här filen för att registrera tidpunkten för den senaste innehållsuppdateringen. Statfile kan vara vilken fil som helst på webbservern.

Statusfilen har inget innehåll. När innehållet uppdateras uppdaterar Dispatcher tidsstämpeln. Standardstatusfilen har namnet .stat och lagras i dokumentroten. Dispatcher blockerar åtkomsten till statfile.

NOTE
Om /statfileslevel har konfigurerats ignorerar Dispatcher egenskapen /statfile och använder .stat som namn.

Hantera gamla dokument när fel uppstår serving-stale-documents-when-errors-occur

Egenskapen /serveStaleOnError styr om Dispatcher returnerar ogiltiga dokument när återgivningsservern returnerar ett fel. Som standard tas det cachelagrade innehållet bort när en lägesfil ändras och det cachelagrade innehållet blir ogiltigt. Den här åtgärden utförs nästa gång den begärs.

Om /serveStaleOnError är inställt på "1" tar Dispatcher inte bort ogiltigt innehåll från cachen. Det vill säga, om inte återgivningsservern returnerar ett lyckat svar. Ett 5xx-svar från AEM eller en timeout för anslutningen gör att Dispatcher skickar det inaktuella innehållet och svarar med och HTTP-statusen 111 (förnyelsen misslyckades).

Cachelagring när autentisering används caching-when-authentication-is-used

Egenskapen /allowAuthorized styr om begäranden som innehåller någon av följande autentiseringsinformation cachelagras:

  • Rubriken authorization
  • En cookie med namnet authorization
  • En cookie med namnet login-token

Som standard cachelagras inte begäranden som innehåller den här autentiseringsinformationen eftersom autentiseringen inte utförs när ett cachelagrat dokument returneras till klienten. Den här konfigurationen förhindrar att Dispatcher skickar cachelagrade dokument till användare som inte har nödvändiga rättigheter.

Om dina krav tillåter cachelagring av autentiserade dokument anger du /allowAuthorized till ett:

/allowAuthorized "1"

NOTE
Om du vill aktivera sessionshantering (med egenskapen /sessionmanagement) måste egenskapen /allowAuthorized anges till "0".

Ange vilka dokument som ska cachelagras specifying-the-documents-to-cache

Egenskapen /rules styr vilka dokument som cachelagras enligt dokumentsökvägen. Oavsett egenskapen /rules cachelagrar Dispatcher aldrig ett dokument under följande omständigheter:

  • URI för begäran innehåller ett frågetecken (?).

    • Anger en dynamisk sida, till exempel ett sökresultat som inte behöver cachas.
  • Filtillägget saknas.

    • Webbservern behöver tillägget för att kunna avgöra dokumenttypen (MIME-typen).
  • Autentiseringshuvudet är inställt (konfigurerbart).

  • Om AEM svarar med följande rubriker:

    • no-cache
    • no-store
    • must-revalidate
NOTE
Metoderna GET och HEAD (för HTTP-huvudet) kan nås av Dispatcher. Mer information om cachelagring av svarshuvuden finns i avsnittet Caching HTTP Response Headers.

Varje objekt i egenskapen /rules innehåller ett glob-mönster och en typ:

  • Mönstret glob används för att matcha dokumentets sökväg.
  • Typen anger om de dokument som matchar mönstret glob ska cachelagras. Värdet kan vara allow (cachelagra dokumentet) eller deny (återge dokumentet).

Om du inte har dynamiska sidor (utöver de sidor som redan har undantagits av ovanstående regler) kan du konfigurera Dispatcher att cachelagra allt. Regelavsnittet ser ut så här:

/rules
  {
    /0000  {  /glob "*"   /type "allow" }
  }

Mer information om Glob-egenskaper finns i Designa mönster för Glob-egenskaper.

Om det finns dynamiska avsnitt på sidan (till exempel ett nyhetsprogram) eller i en sluten användargrupp kan du definiera undantag:

NOTE
Cachelagra inte stängda användargrupper. Orsaken är att användarrättigheter inte kontrolleras för cachelagrade sidor.
/rules
  {
   /0000  { /glob "*" /type "allow" }
   /0001  { /glob "/en/news/*" /type "deny" }
   /0002  { /glob "*/private/*" /type "deny"  }
  }

Komprimering

På Apache-webbservrar kan du komprimera de cachelagrade dokumenten. Komprimering gör att Apache kan returnera dokumentet i ett komprimerat format om klienten begär det. Komprimering utförs automatiskt genom att Apache-modulen mod_deflate aktiveras, till exempel:

AddOutputFilterByType DEFLATE text/plain

Modulen installeras som standard med Apache 2.x.

Ogiltiga filer per mappnivå invalidating-files-by-folder-level

Använd egenskapen /statfileslevel för att göra cachelagrade filer ogiltiga enligt deras sökväg:

  • Dispatcher skapar .stat filer i varje mapp från mappen docroot till den nivå du anger. Dokumentmappen är nivå 0.

  • Filerna blir ogiltiga genom att filen .stat klickas på. Filens senaste ändringsdatum för .stat jämförs med det senaste ändringsdatumet för ett cachelagrat dokument. Dokumentet uppdateras om filen .stat är nyare.

  • När en fil på en viss nivå är ogiltig, ändras alla .stat filer från docroot till på nivån för den ogiltiga filen eller den konfigurerade statsfilevel (beroende på vilken som är minst).

    • Om du till exempel anger egenskapen statfileslevel som 6 och en fil blir ogiltig på nivå 5, kommer alla .stat-filer från docroot att ändras till 5. Om du fortsätter med det här exemplet kommer alla stat-filer från docroot till sex att påverkas (sedan /statfileslevel = "6") om en fil blir ogiltig på nivå 7.

Endast resurserna längs sökvägen till den ogiltiga filen påverkas. Titta på följande exempel: en webbplats använder strukturen /content/myWebsite/xx/. Om du anger statfileslevel som 3 skapas en .stat-fil enligt följande:

  • docroot
  • /content
  • /content/myWebsite
  • /content/myWebsite/*xx*

När en fil i /content/myWebsite/xx blir ogiltig kommer alla .stat-filer från docroot ned till /content/myWebsite/xx att påverkas. Detta scenario är endast fallet för /content/myWebsite/xx och inte till exempel /content/myWebsite/yy eller /content/anotherWebSite.

NOTE
Ogiltigförklaring kan förhindras genom att ett extra huvud CQ-Action-Scope:ResourceOnly skickas. Den här metoden kan användas för att tömma vissa resurser utan att andra delar av cachen blir ogiltiga. Mer information finns på den här sidan och Invalidera Dispatcher-cachen manuellt.
NOTE
Om du anger ett värde för egenskapen /statfileslevel ignoreras egenskapen /statfile.

Automatisk invalidering av cachelagrade filer automatically-invalidating-cached-files

Egenskapen /invalidate definierar de dokument som automatiskt görs ogiltiga när innehållet uppdateras.

Med automatisk ogiltigförklaring tar Dispatcher inte bort cachelagrade filer efter en innehållsuppdatering, utan kontrollerar deras giltighet nästa gång de begärs. Dokument i cacheminnet som inte ogiltigförklaras automatiskt finns kvar i cacheminnet tills en innehållsuppdatering tar bort dem explicit.

Automatisk ogiltigförklaring används vanligtvis för HTML-sidor. HTML sidor innehåller ofta länkar till andra sidor, vilket gör det svårt att avgöra om en innehållsuppdatering påverkar en sida. Om du vill vara säker på att alla relevanta sidor blir ogiltiga när innehållet uppdateras, gör du alla sidor i HTML automatiskt ogiltiga. Följande konfiguration gör alla HTML sidor ogiltiga:

  /invalidate
  {
   /0000  { /glob "*" /type "deny" }
   /0001  { /glob "*.html" /type "allow" }
  }

Mer information om Glob-egenskaper finns i Designa mönster för Glob-egenskaper.

Den här konfigurationen orsakar följande aktivitet när /content/wknd/us/en aktiveras:

  • Alla filer med mönstret en.* har tagits bort från mappen /content/wknd/us.
  • Mappen /content/wknd/us/en./_jcr_content har tagits bort.
  • Alla andra filer som matchar konfigurationen för /invalidate tas inte bort omedelbart. Dessa filer tas bort när nästa begäran görs. I exemplet tas inte /content/wknd.html bort, utan tas bort när /content/wknd.html begärs.

Om du erbjuder automatiskt genererade PDF- och ZIP-filer för nedladdning kan du behöva göra dessa filer ogiltiga automatiskt. Ett konfigurationsexempel ser ut så här:

/invalidate
  {
   /0000 { /glob "*" /type "deny" }
   /0001 { /glob "*.html" /type "allow" }
   /0002 { /glob "*.zip" /type "allow" }
   /0003 { /glob "*.pdf" /type "allow" }
  }

Integreringen AEM Adobe Analytics levererar konfigurationsdata i en analytics.sitecatalyst.js-fil på din webbplats. Exempelfilen dispatcher.any som tillhandahålls med Dispatcher innehåller följande ogiltighetsregel för den här filen:

{
   /glob "*/analytics.sitecatalyst.js"  /type "allow"
}

Använda anpassade ogiltighetsskript using-custom-invalidation-scripts

Med egenskapen /invalidateHandler kan du definiera ett skript som anropas för varje ogiltigförklaringsbegäran som tas emot av Dispatcher.

Den anropas med följande argument:

  • Handtag - Innehållssökvägen som är ogiltig
  • Åtgärd - Replikeringsåtgärden (till exempel Aktivera, Inaktivera)
  • Åtgärdsomfång - Replikeringsåtgärdens omfång (tomt, om inte en rubrik för CQ-Action-Scope: ResourceOnly skickas, se Invalidera cachelagrade sidor från AEM för mer information)

Den här metoden kan användas för att täcka flera olika användningsfall. Om du till exempel gör andra programspecifika cacheminnen ogiltiga eller hanterar fall där den externa URL-adressen för en sida och dess plats i dokumentroten inte matchar innehållssökvägen.

Följande exempelskript loggar varje ogiltig begäran till en fil.

/invalidateHandler "/opt/dispatcher/scripts/invalidate.sh"

Exempel på ogiltighetshanterarskript sample-invalidation-handler-script

#!/bin/bash

printf "%-15s: %s %s" $1 $2 $3>> /opt/dispatcher/logs/invalidate.log

Begränsa de klienter som kan tömma cachen limiting-the-clients-that-can-flush-the-cache

Egenskapen /allowedClients definierar specifika klienter som tillåts tömma cachen. Globeringsmönstren matchas mot IP.

Följande exempel:

  1. nekar åtkomst till alla klienter
  2. explicit tillåter åtkomst till localhost
/allowedClients
  {
   /0001 { /glob "*.*.*.*"  /type "deny" }
   /0002 { /glob "127.0.0.1" /type "allow" }
  }

Mer information om Glob-egenskaper finns i Designa mönster för Glob-egenskaper.

CAUTION
Vi rekommenderar att du definierar /allowedClients.
Om detta inte görs kan alla klienter utfärda ett anrop för att rensa cachen. Om du gör det flera gånger kan det påverka webbplatsens prestanda negativt.

Ignorerar URL-parametrar ignoring-url-parameters

Avsnittet ignoreUrlParams definierar vilka URL-parametrar som ska ignoreras när du avgör om en sida cachelagras eller levereras från cache:

  • När en begärande URL innehåller parametrar som alla ignoreras, cachelagras sidan.
  • När en begärande URL innehåller en eller flera parametrar som inte ignoreras, cachelagras inte sidan.

När en parameter ignoreras för en sida cachelagras sidan första gången som sidan begärs. Efterföljande begäranden för sidan skickas till den cachelagrade sidan, oavsett värdet på parametern i begäran.

NOTE
Vi rekommenderar att du konfigurerar inställningen ignoreUrlParams på ett sätt som tillåtslista. Därför ignoreras alla frågeparametrar och endast kända eller förväntade frågeparametrar undantas ("nekas") från att ignoreras. Mer information och exempel finns på den här sidan.

Om du vill ange vilka parametrar som ska ignoreras lägger du till glob-regler i egenskapen ignoreUrlParams:

  • Om du vill cachelagra en sida oavsett vilken begäran som innehåller en URL-parameter, skapar du en glob-egenskap som tillåter parametern (att ignoreras).
  • Om du vill förhindra att sidan cachas skapar du en globegenskap som nekar parametern (som ignoreras).
NOTE
När du konfigurerar glob-egenskapen bör den matcha frågeparameternamnet. Om du till exempel vill ignorera parametern “p1” från följande URL http://example.com/path/test.html?p1=test&p2=v2, ska egenskapen glob vara:
/0002 { /glob "p1" /type "allow" }

I följande exempel ignoreras alla parametrar, förutom parametern nocache. Därför cachelagrar Dispatcher aldrig URL-adresser som innehåller parametern nocache:

/ignoreUrlParams
{
    # ignore-all-url-parameters-by-dispatcher-and-requests-are-cached
    /0001 { /glob "*" /type "allow" }
    # allow-the-url-parameter-nocache-to-bypass-dispatcher-on-every-request
    /0002 { /glob "nocache" /type "deny" }
}

I kontexten för konfigurationsexemplet ignoreUrlParams ovan gör följande HTTP-begäran att sidan cachas eftersom parametern willbecached ignoreras:

GET /mypage.html?willbecached=true

I kontexten för konfigurationsexemplet ignoreUrlParams gör följande HTTP-begäran att sidan not cachelagras eftersom parametern nocache inte ignoreras:

GET /mypage.html?nocache=true
GET /mypage.html?nocache=true&willbecached=true

Mer information om Glob-egenskaper finns i Designa mönster för Glob-egenskaper.

Cachelagra HTTP-svarshuvuden caching-http-response-headers

NOTE
Den här funktionen är tillgänglig med version 4.1.11 av Dispatcher.

Med egenskapen /headers kan du definiera de HTTP-huvudtyper som Dispatcher ska cachelagra. Vid den första begäran till en icke cachelagrad resurs lagras alla huvuden som matchar ett av de konfigurerade värdena (se konfigurationsexemplet nedan) i en separat fil bredvid cachefilen. Vid efterföljande begäranden till den cachelagrade resursen läggs de lagrade rubrikerna till i svaret.

Nedan visas ett exempel från standardkonfigurationen:

/cache {
  ...
  /headers {
    "Cache-Control"
    "Content-Disposition"
    "Content-Type"
    "Expires"
    "Last-Modified"
    "X-Content-Type-Options"
    "Last-Modified"
  }
}
NOTE
Det är inte tillåtet att använda ordningstecken. Mer information finns i Utforma mönster för globala egenskaper.
NOTE
Om du vill att Dispatcher ska lagra och leverera ETag-svarshuvuden från AEM gör du följande:
  • Lägg till rubriknamnet i avsnittet /cache/headers.
  • Lägg till följande Apache-direktiv i det Dispatcher-relaterade avsnittet:
code language-xml
FileETag none

Filbehörigheter för Dispatcher-cache dispatcher-cache-file-permissions

Egenskapen mode anger vilka filbehörigheter som ska gälla för nya kataloger och filer i cachen. umask i anropsprocessen begränsar den här inställningen. Det är ett oktalt tal som konstruerats av summan av ett eller flera av följande värden:

  • 0400 Tillåt läsning av ägare.
  • 0200 Tillåt skrivning efter ägare.
  • 0100 Tillåt ägaren att söka i kataloger.
  • 0040 Tillåt läsning av gruppmedlemmar.
  • 0020 Tillåt skrivning av gruppmedlemmar.
  • 0010 Tillåt gruppmedlemmar att söka i katalogen.
  • 0004 Tillåt läsning av andra.
  • 0002 Tillåt andra att skriva.
  • 0001 Tillåt andra att söka i katalogen.

Standardvärdet är 0755, vilket gör att ägaren kan läsa, skriva eller söka i och att gruppen och andra kan läsa eller söka i.

Begränsar .stat-filberöring throttling-stat-file-touching

Med standardegenskapen /invalidate gör varje aktivering alla .html-filer ogiltiga (när deras sökväg matchar avsnittet /invalidate). På en webbplats med stor trafik ökar multipla aktiveringar processorbelastningen på backend-sidan. I ett sådant scenario är det önskvärt att strypa filberöringen .stat så att webbplatsen förblir responsiv. Du kan utföra den här åtgärden med egenskapen /gracePeriod.

Egenskapen /gracePeriod definierar hur många sekunder en inaktuell, automatiskt ogiltigförklarad resurs fortfarande kan hanteras från cacheminnet efter den senaste aktiveringen. Egenskapen kan användas i en inställning där en grupp av aktiveringar annars skulle göra hela cachen ogiltig upprepade gånger. Det rekommenderade värdet är 2 sekunder.

Mer information finns i /invalidate och /statfilesleveltidigare.

Konfigurerar tidsbaserad cacheinvalidering - /enableTTL configuring-time-based-cache-invalidation-enablettl

Tidsbaserad cacheogiltigförklaring beror på egenskapen /enableTTL och förekomsten av vanliga förfallorubriker från HTTP-standarden. Om du ställer in egenskapen på 1 (/enableTTL "1") utvärderas svarshuvuden från serverdelen. Om rubrikerna innehåller ett Cache-Control-, max-age- eller Expires-datum skapas en tom hjälpfil bredvid den cachelagrade filen, med en ändringstid som är lika med förfallodatumet. När den cachelagrade filen har begärts efter ändringstiden återbegärs den automatiskt från serverdelen.

Före Dispatcher 4.3.5 baserades logiken för TTL-ogiltigförklaring endast på det konfigurerade TTL-värdet. I Dispatcher 4.3.5 beaktas både de angivna TTL-värdena och, Dispatcher-cacheminnets ogiltighetsregler. För en cachelagrad fil:

  1. Om /enableTTL är inställt på 1 kontrolleras filens förfallodatum. Om filen har gått ut enligt angiven TTL utförs inga andra kontroller och den cachelagrade filen efterfrågas igen från serverdelen.
  2. Om filen inte har gått ut eller om /enableTTL inte har konfigurerats, tillämpas standardreglerna för ogiltigförklaring av cachen, till exempel de regler som /statfileslevel och /invalidate har angetts. Det här flödet innebär att Dispatcher kan göra filer som TTL-värdet inte har upphört att gälla för ogiltiga.

Den nya implementeringen stöder användning där filerna har längre TTL-värden (till exempel CDN). Men filen kan fortfarande ogiltigförklaras även om TTL-värdet inte har gått ut. Det prioriterar innehållets aktualitet framför cache-träffkvoten på Dispatcher.

Om du däremot behöver endast anger du förfallologiken som används för en fil till /enableTTL till 1 och exkluderar den filen från standardcacheminnets invalideringsmekanism. Du kan till exempel:

  • Om du vill ignorera filen konfigurerar du invalideringsreglerna i cacheavsnittet. I kodutdraget nedan ignoreras alla filer som slutar på .example.html och upphör att gälla först när den angivna TTL:en har passerats.
  /invalidate
  {
   /0000  { /glob "*" /type "deny" }
   /0001  { /glob "*.html" /type "allow" }
   /0002  { /glob "*.example.html" /type "deny" }
  }
  • Utforma innehållsstrukturen på ett sådant sätt att du kan ange ett högt /statfilelevel så att filen inte automatiskt blir ogiltig.

Om du gör det ser du till att .stat-filogiltigförklaring inte används och att bara TTL-förfallotiden är aktiv för de angivna filerna.

NOTE
Tänk på att om du anger /enableTTL till 1 aktiveras endast TTL-cachelagring på Dispatcher-sidan. TTL-informationen i den kompletterande filen (se ovan) tillhandahålls inte till någon annan användaragent som begär en sådan filtyp från Dispatcher. Om du vill ge cachelagringshuvuden till underordnade system som ett CDN eller en webbläsare, bör du konfigurera avsnittet /cache/headers i enlighet med detta.
NOTE
Den här funktionen är tillgänglig i Dispatcher version 4.1.11 eller senare.

Konfigurerar belastningsutjämning - /statistics configuring-load-balancing-statistics

Avsnittet /statistics definierar de filkategorier för vilka Dispatcher bedömer svarstiden för varje återgivning. Dispatcher använder poängen för att avgöra vilken rendering som ska skickas.

Varje kategori som du skapar definierar ett globmönster. Dispatcher jämför URI:n för det begärda innehållet med dessa mönster för att fastställa kategorin för det begärda innehållet:

  • Kategoriernas ordning avgör i vilken ordning de jämförs med URI:n.
  • Det första kategorimönstret som matchar URI:n är filens kategori. Inga fler kategorimönster utvärderas.

Dispatcher har stöd för högst åtta statistikkategorier. Om du definierar fler än åtta kategorier används bara de första 8.

Återge markering

Varje gång Dispatcher kräver en återgiven sida används följande algoritm för att välja återgivning:

  1. Om begäran innehåller återgivningsnamnet i en renderid-cookie använder Dispatcher den återgivningen.

  2. Om begäran inte innehåller någon renderid-cookie jämför Dispatcher renderingsstatistiken:

    1. Dispatcher bestämmer kategorin för begärande-URI.
    2. Dispatcher avgör vilken rendering som har lägst svarspoäng för den kategorin och väljer vilken rendering som ska användas.
  3. Om ingen rendering är markerad än använder du den första renderingen i listan.

Poängen för en återgivnings kategori baseras på tidigare svarstider och tidigare misslyckade och lyckade anslutningar som Dispatcher försöker genomföra. För varje försök uppdateras poängen för kategorin för den begärda URI:n.

NOTE
Om du inte använder belastningsutjämning kan du utelämna det här avsnittet.

Definiera statistikkategorier defining-statistics-categories

Definiera en kategori för varje dokumenttyp som du vill behålla statistik för för återgivningsmarkering. Avsnittet /statistics innehåller ett /categories-avsnitt. Om du vill definiera en kategori lägger du till en rad under avsnittet /categories som har följande format:

/name { /glob "pattern"}

Kategorin name måste vara unik för servergruppen. pattern beskrivs i avsnittet Designa mönster för globegenskaper.

För att fastställa kategorin för en URI jämför Dispatcher URI:n med varje kategorimönster tills en matchning hittas. Dispatcher börjar med den första kategorin i listan och fortsätter i rätt ordning. Därför bör du placera kategorier med mer specifika mönster först.

Dispatcher-standardfilen dispatcher.any definierar till exempel en HTML-kategori och en annan kategori. Kategorin HTML är mer specifik och visas därför först:

/statistics
  {
  /categories
    {
      /html { /glob "*.html" }
      /others  { /glob "*" }
    }
  }

I följande exempel finns även en kategori för söksidor:

/statistics
  {
  /categories
    {
      /search { /glob "*search.html" }
      /html { /glob "*.html" }
      /others  { /glob "*" }
    }
  }

Speglar om att servern inte är tillgänglig i Dispatcher-statistik reflecting-server-unavailability-in-dispatcher-statistics

Egenskapen /unavailablePenalty anger den tid (i tiondelar av en sekund) som används för återgivningsstatistiken när en anslutning till återgivningen misslyckas. Dispatcher lägger till tiden i statistikkategorin som matchar den begärda URI:n.

Straffet tillämpas till exempel när TCP/IP-anslutningen till det angivna värdnamnet/porten inte kan upprättas. Orsaken är antingen att AEM inte körs (och inte lyssnar) eller på grund av ett nätverksrelaterat problem.

Egenskapen /unavailablePenalty är direkt underordnad avsnittet /farm (en jämställd del i avsnittet /statistics).

Om det inte finns någon /unavailablePenalty-egenskap används värdet "1".

/unavailablePenalty "1"

Identifierar en mapp för fästig anslutning - /stickyConnectionsFor identifying-a-sticky-connection-folder-stickyconnectionsfor

Egenskapen /stickyConnectionsFor definierar en mapp som innehåller klisterlappande dokument. Den här egenskapen används med URL:en. Dispatcher skickar alla begäranden från en enskild användare som finns i den här mappen till samma återgivningsinstans. Anteckningar säkerställer att sessionsdata finns och är konsekventa för alla dokument. Den här mekanismen använder cookien renderid.

I följande exempel definieras en fast anslutning till mappen /products:

/stickyConnectionsFor "/products"

När en sida består av innehåll från flera innehållsnoder inkluderar du egenskapen /paths som listar sökvägarna till innehållet. En sida innehåller till exempel innehåll från /content/image, /content/video och /var/files/pdfs. Med följande konfiguration aktiveras häftiga anslutningar för allt innehåll på sidan:

/stickyConnections {
  /paths {
    "/content/image"
    "/content/video"
    "/var/files/pdfs"
  }
}

httpOnly httponly

När klisterlappande anslutningar är aktiverade ställer Dispatcher-modulen in cookien renderid. Den här cookien har inte flaggan httponly, som bör läggas till för att öka säkerheten. Du lägger till flaggan httponly genom att ange egenskapen httpOnly i noden /stickyConnections i konfigurationsfilen dispatcher.any. Egenskapens värde (antingen 0 eller 1) definierar om renderid-cookien har attributet HttpOnly tillagt. Standardvärdet är 0, vilket innebär att attributet inte läggs till.

Mer information om flaggan httponly finns på den här sidan.

secure secure

När klisterlappande anslutningar är aktiverade ställer Dispatcher-modulen in cookien renderid. Den här cookien har inte flaggan secure, som bör läggas till för att öka säkerheten. Du lägger till flaggan secure som anger egenskapen secure i noden /stickyConnections i konfigurationsfilen dispatcher.any. Egenskapens värde (antingen 0 eller 1) definierar om renderid-cookien har attributet secure tillagt. Standardvärdet är 0, vilket innebär att attributet läggs till om den inkommande begäran är säker. Om värdet är 1 läggs flaggan secure till oavsett om den inkommande begäran är säker eller inte.

Hantera återgivningsanslutningsfel handling-render-connection-errors

Konfigurera Dispatcher när återgivningsservern returnerar ett 500-fel eller inte är tillgänglig.

Ange en hälsokontrollsida specifying-a-health-check-page

Använd egenskapen /health_check för att ange en URL som kontrolleras när en 500-statuskod inträffar. Om den här sidan även returnerar en 500-statuskod anses instansen vara otillgänglig och en konfigurerbar tidsåtgång ( /unavailablePenalty) tillämpas på återgivningen innan du försöker igen.

/health_check
  {
  # Page gets contacted when an instance returns a 500
  /url "/health_check.html"
  }

Ange fördröjning för sidåterförsök specifying-the-page-retry-delay

Egenskapen /retryDelay anger den tid (i sekunder) som Dispatcher väntar mellan anslutningsförsök med servergruppens återgivningar. För varje rund är det högsta antalet gånger Dispatcher försöker ansluta till en rendering antalet renderingar i servergruppen.

Dispatcher använder värdet "1" om /retryDelay inte uttryckligen har definierats. Standardvärdet är vanligtvis lämpligt.

/retryDelay "1"

Konfigurera antalet återförsök configuring-the-number-of-retries

Egenskapen /numberOfRetries anger det maximala antalet anslutningsförsök som Dispatcher utför med återgivningarna. Om Dispatcher inte kan ansluta till en rendering efter detta antal försök returnerar Dispatcher ett misslyckat svar.

För varje rund är det högsta antalet gånger Dispatcher försöker ansluta till en rendering antalet renderingar i servergruppen. Det högsta antalet gånger som Dispatcher försöker ansluta är därför ( /numberOfRetries) x (antalet återgivningar).

Om värdet inte definieras explicit är standardvärdet 5.

/numberOfRetries "5"

Använda mekanismen för växling vid fel using-the-failover-mechanism

Om du vill skicka om begäranden till olika återgivningar när den ursprungliga begäran misslyckas, aktiverar du redundansfunktionen i Dispatcher-servergruppen. När redundans är aktiverat fungerar Dispatcher på följande sätt:

  • När en begäran om en återgivning returnerar HTTP-status 503 (UNAVAILABLE), skickar Dispatcher begäran till en annan återgivning.

  • När en begäran till en återgivning returnerar HTTP-status 50x (annan än 503), skickar Dispatcher en begäran om sidan som är konfigurerad för egenskapen health_check.

    • Om hälsokontrollen returnerar 500 (INTERNAL_SERVER_ERROR) skickar Dispatcher den ursprungliga begäran till en annan rendering.
    • Om hälsokontrollen returnerar HTTP-status 200 returnerar Dispatcher det ursprungliga HTTP 500-felet till klienten.

Om du vill aktivera redundans lägger du till följande rad i servergruppen (eller webbplatsen):

/failover "1"
NOTE
Om du vill försöka återanvända HTTP-begäranden som innehåller en brödtext skickar Dispatcher en Expect: 100-continue-begäranderubrik till återgivningen innan det faktiska innehållet mellanlagras. CQ 5.5 med CQSE besvarar sedan omedelbart med antingen 100 (CONTINUE) eller en felkod. Andra serverletsbehållare stöds också.

Ignorerar avbrott - /ignoreEINTR ignoring-interruption-errors-ignoreeintr

CAUTION
Det här alternativet behövs inte. Använd den bara när du ser följande loggmeddelanden:
Error while reading response: Interrupted system call

Alla filsystemorienterade systemanrop kan avbrytas EINTR om objektet för systemanropet finns på ett fjärrsystem som nås via NFS. Huruvida dessa systemanrop kan ta slut eller avbrytas baseras på hur det underliggande filsystemet monterades på den lokala datorn.

Använd parametern /ignoreEINTR om instansen har en sådan konfiguration och loggen innehåller följande meddelande:

Error while reading response: Interrupted system call

Internt läser Dispatcher svaret från fjärrservern (d.v.s. AEM) med en slinga som kan representeras som:

while (response not finished) {
read more data
}

Sådana meddelanden kan genereras när EINTR inträffar i avsnittet read more data. Och det är orsaken till att en signal tas emot innan data tas emot.

Om du vill ignorera sådana avbrott kan du lägga till följande parameter i dispatcher.any (före /farms):

/ignoreEINTR "1"

Om /ignoreEINTR anges till "1" fortsätter Dispatcher att försöka läsa data tills det fullständiga svaret har lästs. Standardvärdet är 0 och alternativet inaktiveras.

Designa mönster för globala egenskaper designing-patterns-for-glob-properties

I flera avsnitt i Dispatcher konfigurationsfil används egenskaperna glob som urvalskriterier för klientbegäranden. Värdena för glob-egenskaperna är mönster som Dispatcher jämför med en aspekt av begäran, till exempel sökvägen till den begärda resursen eller klientens IP-adress. Objekten i avsnittet /filter använder till exempel glob mönster för att identifiera sökvägarna till de sidor som Dispatcher agerar på eller avvisar.

Värdena för glob kan innehålla jokertecken och alfanumeriska tecken för att definiera mönstret.

Jokertecken
Beskrivning
Exempel
*

Matchar noll eller flera intilliggande förekomster av ett tecken i strängen. Något av följande avgör det sista tecknet i matchningen:
Ett tecken i strängen matchar nästa tecken i mönstret och mönstertecknet har följande egenskaper:

  • Inte en *
  • Inte en ?
  • Ett literalt tecken (inklusive ett blanksteg) eller en teckenklass.
  • Slutet på mönstret nås.

I en teckenklass tolkas tecknet bokstavligen.

*/geo* Matchar alla sidor under noden /content/geometrixx och noden /content/geometrixx-outdoors. Följande HTTP-begäranden matchar mönstret:

  • "GET /content/geometrixx/en.html"
  • "GET /content/geometrixx-outdoors/en.html"

*outdoors/*
Matchar alla sidor under noden /content/geometrixx-outdoors. Följande HTTP-begäran matchar till exempel globmönstret:

  • "GET /content/geometrixx-outdoors/en.html"
?
Matchar ett enskilt tecken. Använd teckenklasser utanför. I en teckenklass tolkas det här tecknet bokstavligen.

*outdoors/??/*
Matchar sidorna för alla språk i den externa geometrixx-webbplatsen. Följande HTTP-begäran matchar till exempel globmönstret:

  • "GET /content/geometrixx-outdoors/en/men.html"

Följande begäran matchar inte mönstret:

  • "GET /content/geometrixx-outdoors/en.html"
[ and ]
Avmarkerar början och slutet av en teckenklass. Teckenklasser kan innehålla ett eller flera teckenintervall och enskilda tecken.
En matchning inträffar om måltecknet matchar något av tecknen i teckenklassen, eller inom ett definierat intervall.
Om den avslutande parentesen inte inkluderas skapas inga matchningar i mönstret.

*[o]men.html*
Matchar följande HTTP-begäran:

  • "GET /content/geometrixx-outdoors/en/women.html"

Den matchar inte följande HTTP-begäran:

  • "GET /content/geometrixx-outdoors/en/men.html"

*[o/]men.html*
Matchar följande HTTP-begäranden:

  • "GET /content/geometrixx-outdoors/en/women.html"
  • "GET /content/geometrixx-outdoors/en/men.html"
-
Det betecknar ett teckenintervall. För användning i teckenklasser. Utanför en teckenklass tolkas detta tecken bokstavligen.

*[m-p]men.html* Matchar följande HTTP-begäran:

  • "GET /content/geometrixx-outdoors/en/women.html"

Den matchar inte följande HTTP-begäran:

  • "GET /content/geometrixx-outdoors/en/men.html"
!
Negerar tecknet eller teckenklassen som följer. Använd bara för negerande tecken och teckenintervall inuti teckenklasser. Motsvarar ^ wildcard.
Utanför en teckenklass tolkas det här tecknet bokstavligen.

*[ !o]men.html*
Matchar följande HTTP-begäran:

  • "GET /content/geometrixx-outdoors/en/men.html"

Den matchar inte följande HTTP-begäran:

  • "GET /content/geometrixx-outdoors/en/women.html"

*[ !o!/]men.html*
Den matchar inte följande HTTP-begäran:

  • "GET /content/geometrixx-outdoors/en/women.html" eller "GET /content/geometrixx-outdoors/en/men. html"
^
Negerar tecknet eller teckenintervallet som följer. Används för att endast negera tecken och teckenintervall inuti teckenklasser. Motsvarar jokertecknet !.
Utanför en teckenklass tolkas det här tecknet bokstavligen.
Exemplen för jokertecknet ! används och !-tecknen i exempelmönstret ersätts med ^-tecken.

Loggning logging

I webbserverkonfigurationen kan du ange:

  • Platsen för Dispatcher-loggfilen.
  • Loggnivån.

Mer information finns i webbserverdokumentationen och filen Viktigt för din Dispatcher-instans.

Apache-loggar som roterats eller pipats

Om du använder en Apache-webbserver kan du använda standardfunktionerna för Loggrotation, Pipe-loggar eller båda. Använd till exempel pipade loggar:

DispatcherLog "| /usr/apache/bin/rotatelogs logs/dispatcher.log%Y%m%d 604800"

Den här funktionen roterar automatiskt:

  • Dispatcher-loggfilen med en tidsstämpel i tillägget (logs/dispatcher.log%Y%m%d).
  • varje vecka (60 x 60 x 24 x 7 = 604800 sekunder).

Se dokumentationen för Apache Web Server om loggrotation och Pipe-loggar. Exempel: Apache 2.4.

NOTE
Efter installationen är standardloggnivån hög (d.v.s. nivå 3 = Felsökning) så att Dispatcher loggar alla fel och varningar. Den här nivån är användbar i de inledande faserna.
En sådan nivå kräver dock mer resurser. När Dispatcher fungerar jämnt enligt dina krav kan du sänka loggnivån.

Spårningsloggning trace-logging

Bland andra förbättringar för Dispatcher finns även version 4.2.0 med Trace Logging.

Den här möjligheten är högre än felsökningsloggning som visar ytterligare information i loggarna. Loggning läggs till för:

  • Värdena för de vidarebefordrade rubrikerna.
  • Regeln som tillämpas för en viss åtgärd.

Du kan aktivera spårningsloggning genom att ange loggnivån till 4 på webbservern.

Nedan visas ett exempel på loggar med spårning aktiverat:

[Thu Mar 03 16:05:38 2016] [T] [17183] request.headers[Host] = "localhost:8443"
[Thu Mar 03 16:05:38 2016] [T] [17183] request.headers[User-Agent] = "curl/7.43.0"
[Thu Mar 03 16:05:38 2016] [T] [17183] request.headers[Accept] = "*/*"
[Thu Mar 03 16:05:38 2016] [T] [17183] request.headers[X-Forwarded-SSL-Client-Cert] = "(null)"
[Thu Mar 03 16:05:38 2016] [T] [17183] request.headers[Via] = "1.1 localhost:8443 (dispatcher)"
[Thu Mar 03 16:05:38 2016] [T] [17183] request.headers[X-Forwarded-For] = "::1"
[Thu Mar 03 16:05:38 2016] [T] [17183] request.headers[X-Forwarded-SSL] = "on"
[Thu Mar 03 16:05:38 2016] [T] [17183] request.headers[X-Forwarded-SSL-Cipher] = "DHE-RSA-AES256-SHA"
[Thu Mar 03 16:05:38 2016] [T] [17183] request.headers[X-Forwarded-SSL-Session-ID] = "ba931f5e4925c2dde572d766fdd436375e15a0fd24577b91f4a4d51232a934ae"
[Thu Mar 03 16:05:38 2016] [T] [17183] request.headers[X-Forwarded-Port] = "8443"
[Thu Mar 03 16:05:38 2016] [T] [17183] request.headers[Server-Agent] = "Communique-Dispatcher"

Och en händelse loggas när en fil som matchar en blockeringsregel begärs:

[Thu Mar 03 14:42:45 2016] [T] [11831] 'GET /content.infinity.json HTTP/1.1' was blocked because of /0082

Bekräfta grundläggande åtgärd confirming-basic-operation

Så här bekräftar du grundläggande åtgärder och interaktion för webbservern, Dispatcher och AEM:

  1. Ange loglevel som 3.

  2. Starta webbservern. När du gör det startar även Dispatcher.

  3. Starta AEM.

  4. Kontrollera loggen och felfilerna för webbservern och Dispatcher.

    • Beroende på webbservern bör du se meddelanden som:

      • [Thu May 30 05:16:36 2002] [notice] Apache/2.0.50 (Unix) configured och
      • [Fri Jan 19 17:22:16 2001] [I] [19096] Dispatcher initialized (build XXXX)
  5. Surfa på webbplatsen via webbservern. Bekräfta att innehållet visas som det ska.
    På en lokal installation där AEM körs på port 4502 och webbservern på 80 får du åtkomst till webbplatskonsolen med båda:

    • https://localhost:4502/libs/wcm/core/content/siteadmin.html
    • https://localhost:80/libs/wcm/core/content/siteadmin.html
    • Resultaten ska vara identiska. Bekräfta åtkomst till andra sidor med samma mekanism.
  6. Kontrollera att cachekatalogen fylls.

  7. Aktivera en sida om du vill kontrollera att cacheminnet rensas korrekt.

  8. Om allt fungerar som det ska kan du minska antalet loglevel till 0.

Använda flera utskickare using-multiple-dispatchers

I komplexa inställningar kan du använda flera Dispatcher. Du kan till exempel använda:

  • en Dispatcher för att publicera en webbplats på intranätet
  • en andra Dispatcher, med en annan adress och olika säkerhetsinställningar, för att publicera samma innehåll på Internet.

I så fall måste du se till att varje begäran endast går igenom en Dispatcher. En Dispatcher hanterar inte begäranden som kommer från andra Dispatcher. Kontrollera därför att båda utskickarna har direktåtkomst till den AEM webbplatsen.

Felsökning debugging

När du lägger till rubriken X-Dispatcher-Info i en begäran, besvarar Dispatcher om målet har cachelagrats, returnerats från cachelagrat eller inte kunnat cachelagras alls. Svarshuvudet X-Cache-Info innehåller den här informationen i ett läsbart format. Du kan använda dessa svarshuvuden för att felsöka problem som rör svar som cachelagrats av Dispatcher.

Den här funktionen är inte aktiverad som standard, så för att svarsrubriken X-Cache-Info ska inkluderas måste servergruppen innehålla följande post:

/info "1"

Exempel:

/farm
{
    /mywebsite
    {
        # Include X-Cache-Info response header if X-Dispatcher-Info is in request header
        /info "1"
    }
}

Dessutom behöver rubriken X-Dispatcher-Info inte något värde, men om du använder curl för testning måste du ange ett värde som ska skickas till rubriken, till exempel:

curl -v -H "X-Dispatcher-Info: true" https://localhost/content/wknd/us/en.html

Nedan finns en lista med de svarshuvuden som X-Dispatcher-Info returnerar:

  • målfilen cache-lagrad
    Målfilen finns i cachen och Dispatcher har fastställt att den kan levereras.
  • cachelagring
    Målfilen finns inte i cacheminnet och Dispatcher har fastställt att det går att cachelagra utdata och leverera dem.
  • cachelagring: statusfilen är nyare
    Målfilen finns i cachen. En senare statusfil kan dock göra den ogiltig. Dispatcher tar bort målfilen, återskapar den från utdata och levererar den.
  • kan inte nås: dokumentroten finns inte
    Servergruppens konfiguration innehåller inte någon dokumentrot (konfigurationselement cache.docroot).
  • går inte att komma åt: Sökvägen till cachefilen är för lång
    Målfilen - sammanfogningen av dokumentroten och URL-filen - överskrider det längsta möjliga filnamnet på systemet.
  • går inte att komma åt: den tillfälliga filsökvägen är för lång
    Mallen för tillfälligt filnamn överskrider det längsta möjliga filnamnet på systemet. Dispatcher skapar först en temporär fil innan den cachelagrade filen faktiskt skapas eller skrivs över. Det tillfälliga filnamnet är målfilens namn med tecknen _YYYYXXXXXX tillagda, där Y och X ersätts för att skapa ett unikt namn.
  • kan inte nås: URL för begäran saknar tillägg
    Begär-URL:en har inget tillägg, eller så finns det en sökväg som följer filtillägget, till exempel: /test.html/a/path.
  • kan inte nås: begäran måste vara GET eller HEAD
    HTTP-metoden är inte GET eller HEAD. Dispatcher förutsätter att utdata innehåller dynamiska data som inte ska cachelagras.
  • kunde inte nås: begäran innehöll en frågesträng
    Begäran innehöll en frågesträng. Dispatcher förutsätter att utdata är beroende av den frågesträng som har angetts och därför inte cachelagras.
  • kan inte nås: sessionshanteraren måste autentisera
    En sessionshanterare (konfigurationen innehåller en sessionmanagement-nod) styr servergruppens cache och begäran innehöll inte rätt autentiseringsinformation.
  • kan inte nås: begäran innehåller auktorisering
    Servergruppen kan inte cachelagra utdata ( allowAuthorized 0) och begäran innehåller autentiseringsinformation.
  • kan inte nås: målet är en katalog
    Målfilen är en katalog. Platsen kan peka på ett konceptuellt fel, där både en URL och en delwebbadress innehåller cachelagrade utdata. Om en begäran till /test.html/a/file.ext till exempel kommer först och innehåller cachelagrade utdata, kan Dispatcher inte cachelagra utdata från en efterföljande begäran till /test.html.
  • kan inte nås: URL för begäran har ett avslutande snedstreck
    Begärans URL har ett avslutande snedstreck.
  • går inte att komma åt: URL för begäran saknas i cachereglerna
    Servergruppens cacheregler tillåter explicit cachelagring av utdata från en begäran-URL.
  • inte tillgänglig: åtkomstkontroll nekade åtkomst
    Gruppens behörighetskontroll nekade åtkomst till den cachelagrade filen.
  • kan inte nås: sessionen är ogiltig
    En sessionshanterare (konfigurationen innehåller en sessionmanagement -nod) styr servergruppens cache och användarens session är ogiltig eller inte längre giltig.
  • kan inte nås: svaret innehållerno_cache
    Fjärrservern returnerade ett Dispatcher: no_cache -huvud och förbjuder Dispatcher att cachelagra utdata.
  • kan inte nås: längden på svarsinnehållet är noll
    Svarets innehållslängd är noll. Dispatcher skapar inte en fil med längden noll.
recommendation-more-help
ce382601-480f-4a99-8be7-73178d4b6ef5