Probleme mit der Gzip-Komprimierung auf Amazon CloudFront

Probleme mit der Gzip-Komprimierung auf Amazon CloudFront

Ich hatte eine CloudFront-Verteilung mit S3 als Ursprung konfiguriert.

Ich habe „Objekte automatisch komprimieren“ gemäß der Amazon-Anleitung aktiviert. Habe gewartet, bis der Verteilungsstatus „online“ anzeigte, und dann alle Dateien für ungültig erklärt.

Meine Antwortüberschriften sind:

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

Anforderungsheader:

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

Es hat eine „Inhaltslänge“ und einen unterstützten „Inhaltstyp“. Was übersehe ich? Ich werde hier verrückt …

Seitdem habe ich einen neuen S3-Bucket und eine neue Verteilung erstellt, indem ich die oben beschriebenen Schritte ausgeführt habe, aber einen anderen Bucket-Speicherort ausgewählt habe (falls dies irgendwie Auswirkungen hat). Hier sind die allgemeinen Einstellungen der Verteilung:

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

Und Verhaltensweisen: Verteilungsverhalten

Ich kriege gzip immer noch nicht zum Laufen, hier ist die neue Datei: http://d189ud9v76clu1.cloudfront.net/app.min.js

Antwort1

Enthält Ihre Anfrage den erforderlichen Accept-Encoding: gzipHeader?

Ihre Header sehen aus wie Curl-Ausgabe, die diesen Header standardmäßig nicht sendet.

Sie können die GZIP-Kodierung mit Curl wie folgt testen:curl -H "Accept-Encoding: gzip" https://example.com/asset.js"

Antwort2

Ich werde versuchen, zusammenzufassen, was mir passiert ist. Vielleicht hilft das jemandem.

Habe die Ersteinrichtung von S3 durchgeführt. CORS eingerichtet, aber Content-Length nicht hinzugefügt. Habe die Ersteinrichtung von CloudFront durchgeführt. Compress nicht aktiviert.

Alles wird eingesetzt.

Führen Sie einen GTMetrix-Test auf der Domäne aus und erhalten Sie ein F für gzip.

Gehen Sie zurück und googeln Sie, was zu tun ist, damit es funktioniert. Mir wird klar, dass ich den Content-Length-Header brauche, <AllowedHeader>Content-Length</AllowedHeader>und ich muss zurück zu CloudFront und die Komprimierung der Verteilung überprüfen.

Aber... Sie müssen auch Ihren Cache ungültig machen. Im Wesentlichen wurden alle Assets mit 304 (Nicht geändert) zurückgegeben. Sie erhalten Ihre gzippten Assets also nicht.

Verteilen, Bearbeiten, Ungültig machen, erstellen *und los geht‘s.

Ich hoffe es hilft.

Antwort3

Anschließend habe ich den AWS-Helpdesk zur Lösung des Problems bezahlt. Hier ist ihre Antwort:

Ich verstehe, dass es frustrierend sein kann, wenn Sie die mit den Entwicklertools an Ihrer Konfiguration vorgenommenen Änderungen nicht sehen können.

Anhand der Online-Dokumentation kann ich bestätigen, dass sie etwas verwirrend sein kann. Daher werde ich um Feedback bitten, damit einige Änderungen an der Dokumentation vorgenommen werden. In Ihrem Fall handelt es sich eher um Leistungsänderungen. Wenn Sie unten im Chrome-Browser unter „Entwicklertools“ auf die Netzwerkoption schauen, sehen Sie, wie sich die Leistung Ihrer Seiten aufgrund der GZIP-Komprimierung geändert hat.

Um die Konfiguration über den Browser anzuzeigen, haben Sie dieselbe Möglichkeit wie bei der Ausgabe des Befehls „curl“, indem Sie die Antwortheader in den Entwicklertools von einem beliebigen Browser aus anzeigen.

Dies finden Sie unter „Entwicklertools“ -> „Netzwerk auswählen“: * Wenn Sie alle Links zu Ihren Ressourcen gesehen haben, klicken Sie auf den obersten Link mit dem Domänennamen „noru.co.uk“. * Dadurch werden Ihre Header geöffnet, die dieselbe Ausgabe wie das Beispiel des Curl-Befehls liefern:

Akzeptierte Bereiche: Bytes

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

Cache-Steuerung: kein Speichern, kein Cache, muss erneut validiert werden, Nachprüfung=0, Vorprüfung=0

Inhaltskodierung: gzip

Inhaltslänge: 3152

Inhaltstyp: text/html; Zeichensatz=utf-8

Datum: Dienstag, 20. März 2018, 06:37:04 GMT

Etag: "7073226-1521527798;gz"

Läuft ab: Do, 19. Nov. 1981 08:52:00 GMT

Pragma: kein Cache

Server: LiteSpeed

Variieren: Accept-Encoding

X-Firefox-Spdy: h2

Zeichensatz: utf-8

x-litespeed-cache: Treffer, privat

x-powered-by: Craft CMS

Dadurch erhalten Sie die meisten Informationen zur Konfiguration Ihrer Webseiten dieser Domäne.

Ich hoffe, dies hat geholfen. Wenn Sie noch weitere Fragen haben, zögern Sie bitte nicht, uns zu kontaktieren, ich helfe Ihnen gerne weiter.

verwandte Informationen