4 votes

Problèmes de compression Gzip sur Amazon CloudFront

J'avais une distribution CloudFront configurée avec S3 comme origine.

J'ai activé "Compress Objects Automatically" selon le guide d'Amazon. J'ai attendu que le statut de la distribution affiche "en ligne", puis invalidé tous les fichiers.

Mes en-têtes de réponse sont:

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

En-têtes de la requête:

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

Il y a une "Content-length" et un "Content-Type" supporté, qu'est-ce qui me manque? Je deviens fou ici...

Depuis lors, j'ai créé un nouveau bucket S3 et une nouvelle distribution en suivant les étapes décrites ci-dessus, mais en choisissant un emplacement de bucket différent (au cas où cela affecterait de quelque manière que ce soit), Voici les paramètres généraux de la distribution:

Méthode de livraison Web
Enregistrement des cookies  Désactivé
Statut de la distribution  Déployé
Commentaire -
Classe de prix Utiliser toutes les emplacements Edge (Meilleures performances)
AWS WAF Web ACL -
État   Activé
Noms de domaine alternatifs (CNAMEs) -
Certificat SSL  Certificat CloudFront par défaut (*.cloudfront.net)
Nom de domaine d189ud9v76clu1.cloudfront.net
Prise en charge client SSL personnalisée   -
Politique de sécurité TLSv1
Versions HTTP supportées HTTP/2, HTTP/1.1, HTTP/1.0
IPv6    Activé
Objet racine par défaut -
Dernière modification   2018-03-03 15:46 UTC
Bucket de journal

Et comportements: comportements de la distribution

Je ne peux toujours pas faire fonctionner gzip, voici le nouveau fichier: http://d189ud9v76clu1.cloudfront.net/app.min.js

0 votes

Le client envoie-t-il "Accept-Encoding: gzip" dans la requête à CloudFront? Appuyez sur F12 dans votre navigateur et vérifiez les en-têtes de la requête.

0 votes

Oui, j'ai mis à jour la question avec les en-têtes de requête

0 votes

J'ai été en train de bidouiller avec ça depuis un moment, donc j'ai fait les deux, je invalide toujours avant de tester comme vous pouvez le voir par l'âge dans l'en-tête de réponse.

2voto

Brennen Smith Points 1608

Votre requête contient-elle l'en-tête Accept-Encoding: gzip nécessaire ?

Vos en-têtes ressemblent à la sortie de curl, qui n'envoie pas cet en-tête par défaut.

Vous pouvez tester l'encodage gzip avec curl via : curl -H "Accept-Encoding: gzip" https://example.com/asset.js"

0 votes

Il s'agit d'un actif web statique standard, inclus dans html, j'ai ajouté des en-têtes de requête à la question

2voto

Mark Points 121

Je vais voir si je peux résumer ce qui m'est arrivé et peut-être que cela aidera quelqu'un.

J'ai fait la configuration initiale du S3. J'ai configuré CORS mais je n'avais pas ajouté Content-Length. J'ai fait la configuration initiale de CloudFront. Je n'ai pas coché Compress.

Tout se déploie.

Je lance un test GTMetrix sur le domaine et obtiens un F pour gzip.

Je retourne sur Google pour savoir quoi faire pour que cela fonctionne. Je réalise que j'ai besoin de l'en-tête Content-Length Content-Length et je me rends compte que je dois retourner sur CloudFront et cocher compress sur la Distribution.

Mais... vous devez également invalider votre cache. Essentiellement, tous les fichiers étaient renvoyés en 304 (Non modifié). Donc vous ne récupérez pas vos fichiers gzippés.

Distribution, Modifier, Invalidations, créer * et c'est parti.

J'espère que cela vous aidera.

1voto

Jensen2k Points 3992

Après avoir payé pour obtenir de l'aide via le service d'assistance AWS pour résoudre ce problème, voici leur réponse :

Je comprends que cela peut être frustrant de ne pas pouvoir voir les modifications apportées à votre configuration à l'aide des outils de développement.

D'après la documentation en ligne, je confirme qu'elle peut être un peu déroutante, c'est pourquoi je vais faire une demande de modification de la documentation. Dans votre cas, il s'agit de modifications de performances. Si vous regardez en bas du navigateur Chrome, dans les outils de développement, sous l'onglet Réseau, vous verrez comment les performances de vos pages ont été affectées en raison de la compression gzip.

Pour voir la configuration via le navigateur, une autre option consiste à obtenir le même résultat que vous auriez avec la commande "curl" en consultant les en-têtes de réponse dans les outils de développement de n'importe quel navigateur.

Cela peut être fait en allant dans Outils de développement -> Sélectionner Réseau: * Comme vous l'avez vu, tous les liens vers vos ressources, cliquez sur le premier lien, le nom de domaine "noru.co.uk". * Cela ouvrira les en-têtes qui donneront le même résultat que la commande curl par exemple :

Accept-Ranges: bytes

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

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Content-Encoding: gzip

Content-Length: 3152

Content-Type: text/html; charset=utf-8

Date: Tue, 20 Mar 2018 06:37:04 GMT

Etag: "7073226-1521527798;gz"

Expires: Thu, 19 Nov 1981 08:52:00 GMT

Pragma: no-cache

Server: LiteSpeed

Vary: Accept-Encoding

X-Firefox-Spdy: h2

charset: utf-8

x-litespeed-cache: hit,private

x-powered-by: Craft CMS

Cela vous donnera la plupart des informations sur la configuration de vos pages web pour ce domaine.

J'espère que cela vous aidera. Si vous avez d'autres préoccupations, n'hésitez pas à nous contacter, je serais ravi de vous apporter toute l'aide nécessaire.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X