Front Door and CDN with blob storage compression doesn't work

Neil Pendlington 0 Reputation points
2024-12-24T10:23:23.66+00:00

I set up a storage account (StorageV2 (general purpose v2)). A container with access level of anonymous read for blobs only, I can then use a web browser to hit the blob endpoint and get it returned in raw form.

Response Headers:
User's image

Setting up a new Front Door and CDN profile, I configure the route to enable compression:
User's image

And the origin settings point to the blob endpoint which has the MIME type "text/plain" in the allow list.

When I access the CDN endpoint (front door) via the browser, then the response is never compressed. Despite the request having an Accept Encoding header with "gzip, deflate, br, zstd", the response headers never include a Content Encoding header to indicate a compressed stream. And most confusingly, the response headers do include a Transfer Encoding chunked value.

I spent a while diagnosing blob storage returning chunked responses, until I realised that this must be something the Front Door CDN is doing as directly accessing the blob, there is no CTE happening.

I've used https://zcusa.951200.xyz/en-us/azure/frontdoor/standard-premium/troubleshoot-compression to try and diagnose, but as far as I can see, none of the conditions for the compression failing are met.

As an aside, I managed to get it working perfectly using Azure CDN, however with this being deprecated in 2027, I was hoping to have it working in Front Door so I don't need to worry about migration later on or problems like this biting me!

Have I just missed a configuration option, or is this a bug?

Azure Front Door
Azure Front Door
An Azure service that provides a cloud content delivery network with threat protection.
712 questions
Azure Blob Storage
Azure Blob Storage
An Azure service that stores unstructured data in the cloud as blobs.
3,003 questions
{count} votes

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.