
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: gzip
cabeç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.