You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Dave Wreski <dw...@guardiandigital.com.INVALID> on 2024/09/04 19:55:24 UTC
[users@httpd] Brotli compression
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
Re: [users@httpd] Brotli compression
Posted by Dave Wreski <dw...@guardiandigital.com.INVALID>.
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.
Header merge Cache-Control "no-transform"
This header was preventing cloudflare from compressing content, by design.
dave
On 9/4/24 3:55 PM, Dave Wreski wrote:
>
> 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
>
>