
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: gzip
Header?
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.