Hi, following up with my own email here to indicate I discovered
the problem.
It wasn't immediately clear from the Joomla AdminTools "prevent
content transformation" setting that it essentially disables
cloudflare's ability to proxy compressed content.
This header was preventing cloudflare from compressing content,
by design.
Hi,
I'm having difficulty setting brotli compression for one of our
sites. I'm using the same config for all sites, but it's only https://linuxsecurity.com that is
having the problem. The site is proxied by cloudflare.
Cloudflare enables brotli compression by default for their
connection to the browser, but apparently it's not set between
apache and cloudflare.
The Accept-Encoding header is set, but I can't figure out why
it won't set content-encoding.
$ curl -s -I -H 'Accept-Encoding: br' https://linuxsecurity.com
HTTP/2 200
date: Wed, 04 Sep 2024 19:48:44 GMT
content-type: text/html; charset=utf-8
vary: Accept-Encoding,User-Agent,Origin
x-content-encoded-by: Joomla
expires: Wed, 17 Aug 2005 00:00:00 GMT
cache-control: no-store, no-cache, must-revalidate,
post-check=0, pre-check=0
cache-control: no-transform
pragma: no-cache
set-cookie:
59181a1167c38a97d964b60c6c10affd=g5g4qcf1nme37a265p16munj7m;
path=/; secure; HttpOnly
set-cookie: jfbconnect_permissions_granted=deleted; expires=Thu,
01 Jan 1970 00:00:01 GMT; Max-Age=0; path=/
access-control-allow-origin: *
access-control-allow-methods: POST, GET, OPTIONS, DELETE, PUT
access-control-allow-headers: x-requested-with, Content-Type,
origin, authorization, accept, client-security-token
access-control-expose-headers: Content-Security-Policy, Location
access-control-max-age: 600
strict-transport-security: max-age=31536000; includeSubDomains;
preload
permissions-policy: accelerometer=(), autoplay=(), camera=(),
cross-origin-isolated=(), display-capture=(),
encrypted-media=(), fullscreen=(), geolocation=(), gyroscope=(),
keyboard-map=(), magnetom
eter=(), microphone=(), midi=(), payment=(),
picture-in-picture=(), publickey-credentials-get=(),
screen-wake-lock=(), sync-xhr=(), usb=(),
xr-spatial-tracking=(), clipboard-read=(), clipboard-write
=(), gamepad=(), hid=(), idle-detection=(), serial=(),
window-placement=()
last-modified: Wed, 04 Sep 2024 19:48:44 GMT
accept-encoding: br
cf-cache-status: DYNAMIC
report-to:
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=QywmmDFtRWVIv2PA11ObQ83JYb0XGdQorRRxz5Ii4SYLRWzSJ%2FDZZfxUnp85rPuDVA9M8GATcyi7FD2iiHkt%2BNUSSzdQoBz84m0ytQT2m3F9hW8DlUhZ
orfepmu%2FzIcJ613l"}],"group":"cf-nel","max_age":604800}
nel:
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
expect-ct: max-age=86400, enforce
referrer-policy: same-origin
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
server: cloudflare
cf-ray: 8be07fa789ca0fa7-EWR
I've set brotli compression using the following in the
Directory section of the VirtualHost for this domain:
SetOutputFilter BROTLI_COMPRESS
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|webp)$ no-brotli
I've also tried manually setting content-encoding, but that
causes the site to fail.
Is it possible I'm missing something in cloudflare?
Thanks,
Dave