Problemas com compactação Gzip no Amazon CloudFront

Problemas com compactação Gzip no Amazon CloudFront

Eu tinha uma distribuição do CloudFront configurada com S3 como origem.

Ativei "Compactar objetos automaticamente" de acordo com o guia da Amazon. Aguardou que o status de distribuição exibisse "online" e invalidou todos os arquivos.

Meus cabeçalhos de resposta são:

Age:5
Connection:keep-alive
Content-Length:232359
Content-Type:application/javascript
Date:Sat, 03 Mar 2018 15:39:10 GMT
Last-Modified:Sat, 03 Mar 2018 15:37:32 GMT
Server:AmazonS3
Vary:Accept-Encoding
Via:1.1 4dbdc57755819d1a0ec1defc2630d677.cloudfront.net (CloudFront)
X-Amz-Cf-Id:6eHPWzOXv2J6kIvzuieoI9chtPBBvEvJFH9fb3yMwHvvcMZ4xsigCA==
X-Cache:Hit from cloudfront

Cabeçalhos de solicitação:

Accept:*/*
Accept-Encoding:gzip, deflate, br
Accept-Language:en-GB,en;q=0.9,en-US;q=0.8,pl;q=0.7,zh;q=0.6
Cache-Control:no-cache
Connection:keep-alive
Host:d2h5tcpn9r8alm.cloudfront.net
Pragma:no-cache
Referer:https://noru.co.uk/
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36

Ele tem um "Comprimento de conteúdo" e um "Tipo de conteúdo" compatível, o que estou perdendo? Estou ficando louco aqui...

Desde então, criei um novo bucket s3 e uma nova distribuição seguindo as etapas descritas acima, mas escolhendo um local de bucket diferente (caso isso esteja afetando de alguma forma). Aqui estão as configurações gerais de distribuição:

Delivery Method Web
Cookie Logging  Off
Distribution Status Deployed
Comment -
Price Class Use All Edge Locations (Best Performance)
AWS WAF Web ACL -
State   Enabled
Alternate Domain Names (CNAMEs) -
SSL Certificate Default CloudFront Certificate (*.cloudfront.net)
Domain Name d189ud9v76clu1.cloudfront.net
Custom SSL Client Support   -
Security Policy TLSv1
Supported HTTP Versions HTTP/2, HTTP/1.1, HTTP/1.0
IPv6    Enabled
Default Root Object -
Last Modified   2018-03-03 15:46 UTC
Log Bucket

E comportamentos: comportamentos de distribuição

Ainda não consigo fazer o gzip funcionar, aqui está o novo arquivo: http://d189ud9v76clu1.cloudfront.net/app.min.js

Responder1

Sua solicitação contém o Accept-Encoding: gzipcabeçalho necessário?

Seus cabeçalhos se parecem com a saída curl, que não envia esse cabeçalho por padrão.

Você pode testar a codificação gzip com curl via:curl -H "Accept-Encoding: gzip" https://example.com/asset.js"

Responder2

Vou ver se consigo resumir o que aconteceu comigo e talvez isso ajude alguém.

Fiz a configuração inicial do S3. Configure o CORS, mas não tenha Content-Length adicionado. Fiz a configuração inicial do CloudFront. Não marquei Compactar.

Tudo é implantado.

Execute um teste GTMetrix no domínio e obtenha um F para gzip.

Volte e pesquise no Google o que fazer para que funcione. Percebo que preciso do cabeçalho Content-Length <AllowedHeader>Content-Length</AllowedHeader>e percebo que preciso voltar ao CloudFront e verificar a compactação na distribuição.

Mas... você também precisa invalidar seu cache. Essencialmente, todos os ativos estavam voltando 304 (não modificado). Portanto, você não receberá seus ativos compactados.

Distribuição, Edição, Invalidações, criar *e pronto.

Espero que ajude.

Responder3

Depois disso, paguei pelo suporte técnico da AWS para resolver esse problema para mim. Aqui está a resposta:

Entendo que pode ser frustrante não conseguir visualizar as alterações feitas em sua configuração usando as Ferramentas do desenvolvedor.

Pela documentação que está online, confirmo que pode ser um pouco confuso e farei uma solicitação de feedback para fazer algumas alterações na documentação, no seu caso são mais alterações de desempenho, se você olhar na parte inferior do navegador Chrome, Rede opção em Ferramentas do desenvolvedor, você verá como o desempenho de suas páginas foi afetado devido à compactação gzip.

Para visualizar a configuração através do navegador, outra opção é a mesma que você obteria na saída do comando "curl", visualizando os cabeçalhos de resposta nas ferramentas do desenvolvedor em qualquer navegador.

Isso pode ser encontrado se você acessar Ferramentas do desenvolvedor -> Selecionar rede: * Como você viu todos os links para seus recursos, clique no link superior do nome de domínio "noru.co.uk". * Isso abrirá seus cabeçalhos, que fornecerão a mesma saída do exemplo do comando curl:

Intervalos de aceitação: bytes

Alt-Svc: quic=":443"; ma=2592000; v="35,37,38,39"

Controle de cache: sem armazenamento, sem cache, deve-revalidar, pós-verificação = 0, pré-verificação = 0

Codificação de conteúdo: gzip

Comprimento do conteúdo: 3152

Tipo de conteúdo: texto/html; conjunto de caracteres=utf-8

Data: terça-feira, 20 de março de 2018, 06:37:04 GMT

E-tag: "7073226-1521527798;gz"

Expira em: quinta-feira, 19 de novembro de 1981, 08:52:00 GMT

Pragma: sem cache

Servidor: LiteSpeed

Variar: Aceitar-Codificação

X-Firefox-Spdy: h2

conjunto de caracteres: utf-8

x-litespeed-cache: hit, privado

x-powered-by: Craft CMS

Isso lhe dará a maior parte das informações de configuração das páginas da web desse domínio.

Espero que isso tenha ajudado. Se você tiver qualquer outra dúvida, não hesite em nos contatar, pois terei prazer em ajudar ainda mais.

informação relacionada