I have completed setting up AEM/dispatcher and I am able to access the aem pages from dispatcher but the page is not cached. I got below error in log.
cache-action for [/content/we-retail/us/en.html]: NONE. Is there any setting I should make it CREATE instead NONE
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Found farm publish for localhost
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] checking [/content/we-retail/us/en.html]
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] request contains authorization
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] cache-action for [/content/we-retail/us/en.html]: NONE
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Reusing connection: 127.0.0.1:4503
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Connected to backend rend01 (127.0.0.1:4503)
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: Host
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: Cache-Control
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: sec-ch-ua
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: sec-ch-ua-mobile
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: sec-ch-ua-platform
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: Upgrade-Insecure-Requests
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: User-Agent
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: Accept
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: Sec-Fetch-Site
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: Sec-Fetch-Mode
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: Sec-Fetch-User
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: Sec-Fetch-Dest
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: Accept-Encoding
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: Accept-Language
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: Cookie
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: Via
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: X-Forwarded-For
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Adding request header: Server-Agent
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] response.status = 200
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] response.headers[Date] = "Wed, 20 Dec 2023 16:25:59 GMT"
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] response.headers[X-Content-Type-Options] = "nosniff"
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] response.headers[Content-Type] = "text/html;charset=utf-8"
[Wed Dec 20 21:55:59 2023] [D] [pid 20663] Storing socket for later reuse: 127.0.0.1:4503
[Wed Dec 20 21:55:59 2023] [I] [pid 20663] "GET /content/we-retail/us/en.html" 200 none [publish/rend01] 140ms
Here is my dispatcher.any file.
# Each farm configures a set of load balanced renders (i.e. remote servers)
/farms
{
# First farm entry
/publish
{
# Request headers that should be forwarded to the remote server.
/clientheaders
{
# Forward all request headers that are end-to-end. If you want
# to forward a specific set of headers, you'll have to list
# them here.
"*"
}
# Hostname globbing for farm selection (virtual domain addressing)
/virtualhosts
{
# Entries will be compared against the "Host" request header
# and an optional request URL prefix.
#
# Examples:
#
# www.company.com
# intranet.*
# myhost:8888/mysite
"*"
}
# The load will be balanced among these render instances
/renders
{
/rend01
{
# Hostname or IP of the render
/hostname "127.0.0.1"
# Port of the render
/port "4503"
# Connect timeout in milliseconds, 0 to wait indefinitely
# /timeout "0"
}
}
# The filter section defines the requests that should be handled by the dispatcher.
#
# Entries can be either specified using globs, or elements of the request line:
#
# (1) globs will be compared against the entire request line, e.g.:
#
# /0001 { /type "deny" /glob "* /index.html *" }
#
# denies request "GET /index.html HTTP/1.1" but not "GET /index.html?a=b HTTP/1.1".
#
# (2) method/url/query/protocol/path/selectors/extension/suffix will be compared
# against the respective elements of the request line, e.g.:
#
# /0001 { /type "deny" /method "GET" /url "/index.html" }
#
# denies both "GET /index.html" and "GET /index.html?a=b HTTP/1.1".
#
# (3) all elements of the request line can also be specified as regular expressions,
# which are identified by using single quotes, e.g.
#
# /0001 { /type "allow" /method '(GET|HEAD)' }
#
# allows GET or HEAD requests, or:
#
# /0002 { /type "deny" /extension '()' }
#
# denies requests having no extension.
#
# Note: specifying elements of the request line is the preferred method.
#
/filter
{
# Deny everything first and then allow specific entries
/0001 { /type "allow" /glob "*" }
# 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 '(clientlibs|css|gif|ico|js|png|swf|jpe?g|woff2?)'
}
# 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
/0082
{
/type "deny"
/path "/content"
/selectors '(feed|rss|pages|languages|blueprint|infinity|tidy)'
/extension '(json|xml|html)'
}
# Uncomment the following to allow one-level json requests
# /0087 { /type "allow" /method "GET" /extension "json" /selectors "1" }
}
# The cache section regulates what responses will be cached and where.
/cache
{
# The docroot must be equal to the document root of the webserver. The
# dispatcher will store files relative to this directory and subsequent
# requests may be "declined" by the dispatcher, allowing the webserver
# to deliver them just like static files.
/docroot "/private/var/www/weretail"
# Sets the level upto which files named ".stat" will be created in the
# document root of the webserver. When an activation request for some
# page is received, only files within the same subtree are affected
# by the invalidation.
#/statfileslevel "0"
# Flag indicating whether to cache responses to requests that contain
# authorization information.
#/allowAuthorized "0"
# Flag indicating whether the dispatcher should serve stale content if
# no remote server is available.
#/serveStaleOnError "0"
# The rules section defines what responses should be cached based on
# the requested URL. Please note that only the following requests can
# lead to cacheable responses:
#
# - HTTP method is GET
# - URL has an extension
# - Request has no query string
# - Request has no "Authorization" header (unless allowAuthorized is 1)
/rules
{
/0000
{
# the globbing pattern to be compared against the url
# example: * -> everything
# : /foo/bar.* -> only the /foo/bar documents
# : /foo/bar/* -> all pages below /foo/bar
# : /foo/bar[./]* -> all pages below and /foo/bar itself
# : *.html -> all .html files
/glob "*"
/type "allow"
}
}
# The invalidate section defines the pages that are "invalidated" after
# any activation. Please note that the activated page itself and all
# related documents are flushed on an modification. For example: if the
# page /foo/bar is activated, all /foo/bar.* files are removed from the
# cache.
/invalidate
{
/0000
{
/glob "*"
/type "allow"
}
/0001
{
# Consider all HTML files stale after an activation.
/glob "*.html"
/type "allow"
}
/0002
{
/glob "/etc/segmentation.segment.js"
/type "allow"
}
/0003
{
/glob "*/analytics.sitecatalyst.js"
/type "allow"
}
}
# The allowedClients section restricts the client IP addresses that are
# allowed to issue activation requests.
/allowedClients
{
# Uncomment the following to restrict activation requests to originate
# from "localhost" only.
#
#/0000
# {
# /glob "*"
# /type "deny"
# }
#/0001
# {
# /glob "127.0.0.1"
# /type "allow"
# }
}
# The ignoreUrlParams section contains query string parameter names that
# should be ignored when determining whether some request's output can be
# cached or delivered from cache.
#
# In this example configuration, the "q" parameter will be ignored.
#/ignoreUrlParams
# {
# /0001 { /glob "*" /type "deny" }
# /0002 { /glob "q" /type "allow" }
# }
# Cache response headers next to a cached file. On the first request to
# an uncached resource, all headers matching one of the values found here
# are stored in a separate file, next to the cache file. On subsequent
# requests to the cached resource, the stored headers are added to the
# response.
#
# Note, that file globbing characters are not allowed here.
#
/headers
{
"Cache-Control"
"Content-Disposition"
"Content-Type"
"Expires"
"Last-Modified"
"X-Content-Type-Options"
}
# A grace period defines the number of seconds a stale, auto-invalidated
# resource may still be served from the cache after the last activation
# occurring. Auto-invalidated resources are invalidated by any activation,
# when their path matches the /invalidate section above. This setting
# can be used in a setup, where a batch of activations would otherwise
# repeatedly invalidate the entire cache.
#
/gracePeriod "2"
# Enable TTL evaluates the response headers from the backend, and if they
# contain a Cache-Control max-age or Expires date, an auxiliary, empty file
# next to the cache file is created, with modification time equal to the
# expiry date. When the cache file is requested past the modification time
# it is automatically re-requested from the backend.
#
/enableTTL "1"
}
# The statistics sections dictates how the load should be balanced among the
# renders according to the media-type.
/statistics
{
/categories
{
/html
{
/glob "*.html"
}
/others
{
/glob "*"
}
}
}
# Authorization checker: before a page in the cache is delivered, a HEAD
# request is sent to the URL specified in /url with the query string
# '?uri='. If the response status is 200 (OK), the page is returned
# from the cache. Otherwise, the request is forwarded to the render and
# its response returned.
#
# Only pages matching the /filter section below are checked, all other pages
# get delivered unchecked.
#
# All header lines returned from the auth_checker's HEAD request that match
# the /headers section will be returned as well.
#
#/auth_checker
# {
# /url "/bin/permissioncheck.html"
# /filter
# {
# /0000
# {
# /glob "*"
# /type "deny"
# }
# /0001
# {
# /glob "*.html"
# /type "allow"
# }
# }
# /headers
# {
# /0000
# {
# /glob "*"
# /type "deny"
# }
# /0001
# {
# /glob "Set-Cookie:*"
# /type "allow"
# }
# }
# }
}
}
Solved! Go to Solution.
Views
Replies
Total Likes
@Mario248 I see the "request contains authorization' message above the cache-action: none.
Please check the solution suggested here #5 and #6 scenario
https://experienceleague.adobe.com/docs/experience-cloud-kcs/kbarticles/KA-17497.html?lang=en
that is setting in the cache setting.
allowAuthorized "1"
@Mario248 I see the "request contains authorization' message above the cache-action: none.
Please check the solution suggested here #5 and #6 scenario
https://experienceleague.adobe.com/docs/experience-cloud-kcs/kbarticles/KA-17497.html?lang=en
that is setting in the cache setting.
allowAuthorized "1"
Thank you for your input. Cache is started working after changing allowAuthorized value from 0 to 1
Views
Replies
Total Likes