
Tenía una distribución de CloudFront configurada con S3 como origen.
He habilitado "Comprimir objetos automáticamente" según la guía de Amazon. Esperó a que el estado de distribución mostrara "en línea" y luego invalidó todos los archivos.
Mis encabezados de respuesta son:
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
Encabezados de solicitud:
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
Tiene una "longitud de contenido" y un "tipo de contenido" compatible, ¿qué me falta? Me estoy volviendo loco aquí...
Desde entonces, creé un nuevo depósito s3 y una nueva distribución siguiendo los pasos descritos anteriormente, pero eligiendo una ubicación de depósito diferente (en caso de que esto afecte de alguna manera). Aquí están las configuraciones generales de distribución:
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
Y comportamientos: comportamientos de distribución
Todavía no puedo hacer que gzip funcione. Aquí está el nuevo archivo: http://d189ud9v76clu1.cloudfront.net/app.min.js
Respuesta1
¿Su solicitud contiene el Accept-Encoding: gzip
encabezado necesario?
Sus encabezados parecen una salida curl, que no envía ese encabezado de forma predeterminada.
Puedes probar la codificación gzip con curl a través de:curl -H "Accept-Encoding: gzip" https://example.com/asset.js"
Respuesta2
Veré si puedo resumir lo que me pasó y tal vez esto ayude a alguien.
Hice la configuración inicial del S3. Configure CORS pero no se agregó Content-Length. Realicé la configuración inicial de CloudFront. No marqué Comprimir.
Todo se despliega.
Ejecute una prueba GTMetrix en el dominio y obtenga una F para gzip.
Vuelve atrás y busca en Google qué hacer para que funcione. Me doy cuenta de que necesito el encabezado Content-Length <AllowedHeader>Content-Length</AllowedHeader>
y me doy cuenta de que necesito volver a CloudFront y verificar la compresión en Distribución.
Pero... también necesitas invalidar tu caché. Básicamente, todos los activos regresaban 304 (sin modificar). Por lo tanto, no obtendrá sus activos comprimidos.
Distribución, Edición, Invalidaciones, crear *
y listo.
Espero eso ayude.
Respuesta3
Después de eso, pagué al servicio de asistencia técnica de AWS para que me resolviera este problema, aquí está su respuesta:
Entiendo que puede resultar frustrante no poder ver los cambios realizados en su configuración mediante las herramientas de desarrollo.
De la documentación que está en línea, confirmo que puede ser un poco confuso, por lo que haré una solicitud de comentarios para realizar algunos cambios en la documentación, en su caso son más cambios de rendimiento, si mira la parte inferior del navegador Chrome, Red. opción en Herramientas de desarrollador verá cómo el rendimiento de sus páginas se vio afectado debido a la compresión gzip.
Para ver la configuración a través del navegador, otra opción es la misma que obtendría en la salida del comando "curl", al ver los encabezados de respuesta en Herramientas de desarrollo desde cualquier navegador.
Esto se puede encontrar si va a Herramientas de desarrollo -> Seleccionar red: * Cuando vio todos los enlaces a sus recursos, haga clic en el nombre de dominio del enlace superior "noru.co.uk". * Esto abrirá sus encabezados, que darán el mismo resultado que el comando curl en el ejemplo:
Rangos de aceptación: bytes
Alt-Svc: quic=":443"; ma=2592000; v="35,37,38,39"
Control de caché: sin almacenamiento, sin caché, debe revalidar, verificación posterior = 0, verificación previa = 0
Codificación de contenido: gzip
Longitud del contenido: 3152
Tipo de contenido: texto/html; juego de caracteres = utf-8
Fecha: martes, 20 de marzo de 2018 06:37:04 GMT
Etiqueta electrónica: "7073226-1521527798;gz"
Expira: jueves, 19 de noviembre de 1981 08:52:00 GMT
Pragma: sin caché
Servidor: LiteSpeed
Variar: aceptar-codificación
X-Firefox-Spdy: h2
juego de caracteres: utf-8
x-litespeed-cache: hit, privado
x-powered-by: Craft CMS
Esto le dará la mayor parte de la información de su configuración a sus páginas web de ese dominio.
Espero que esto haya ayudado, si tiene alguna otra inquietud, no dude en contactarnos ya que con gusto le ayudaré.