Проблемы со сжатием Gzip на Amazon CloudFront

Проблемы со сжатием Gzip на Amazon CloudFront

У меня был настроен дистрибутив CloudFront с S3 в качестве источника.

Я включил "Сжимать объекты автоматически" согласно руководству Amazon. Подождал, пока статус распространения не отобразится как "в сети", затем аннулировал все файлы.

Заголовки моего ответа:

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

Заголовки запроса:

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

У него есть "Content-length" и поддерживаемый "Content-Type", что я упускаю? Я схожу с ума...

С тех пор я создал новый контейнер s3 и новый дистрибутив, выполнив описанные выше шаги, но выбрав другое расположение контейнера (на случай, если это как-то влияет). Вот общие настройки дистрибутива:

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

И поведение: поведение распределения

Я все еще не могу заставить gzip работать. Вот новый файл: http://d189ud9v76clu1.cloudfront.net/app.min.js

решение1

Содержит ли ваш запрос необходимый Accept-Encoding: gzipзаголовок?

Ваши заголовки выглядят как вывод curl, который по умолчанию не отправляет этот заголовок.

Вы можете протестировать кодирование gzip с помощью curl с помощью:curl -H "Accept-Encoding: gzip" https://example.com/asset.js"

решение2

Попробую вкратце рассказать, что со мной произошло, и, возможно, это кому-то поможет.

Сделал начальную настройку S3. Настроил CORS, но не добавил Content-Length. Сделал начальную настройку CloudFront. Не проверял Compress.

Все развертывается.

Запустите тест GTMetrix на домене и получите оценку F за gzip.

Вернитесь и погуглите, что сделать, чтобы это заработало. Понимаю, что мне нужен заголовок Content-Length <AllowedHeader>Content-Length</AllowedHeader>, и понимаю, что мне нужно вернуться в CloudFront и проверить сжатие на Distribution.

Но... вам также нужно сделать кэш недействительным. По сути, все активы возвращали 304 (не изменено). Так что вы не получите ваши сжатые активы.

Распространение, редактирование, аннулирование, создание *и запуск.

Надеюсь, поможет.

решение3

После этого я заплатил службе поддержки AWS за решение этой проблемы, вот их ответ:

Я понимаю, что это может быть неприятно — невозможность просмотреть изменения, внесенные в конфигурацию с помощью инструментов разработчика.

Из документации, которая есть в Интернете, я могу сделать вывод, что это может быть немного запутанным, поэтому я отправлю запрос на внесение некоторых изменений в документацию. В вашем случае это скорее изменения производительности. Если вы посмотрите в нижнюю часть браузера Chrome, в разделе «Сеть» в разделе «Инструменты разработчика» вы увидите, как сжатие gzip повлияло на производительность ваших страниц.

Для просмотра конфигурации через браузер есть еще один вариант, аналогичный тому, который вы получили бы в выводе команды «curl», просматривая заголовки ответа в инструментах разработчика из любого браузера.

Это можно найти, если вы перейдете в Developer Tools -> Select Network: * Когда вы увидите все ссылки на свои ресурсы, нажмите на верхнюю ссылку доменного имени "noru.co.uk". * Это откроет ваши заголовки, которые дадут тот же вывод, что и команда curl, например:

Диапазоны приема: байты

Alt-Svc: quic=":443"; ма=2592000; в="35,37,38,39"

Cache-Control: без сохранения, без кэширования, обязательная повторная проверка, последующая проверка=0, предварительная проверка=0

Кодирование содержимого: gzip

Длина контента: 3152

Тип содержимого: text/html; кодировка=utf-8

Дата: Вт, 20 Мар 2018 06:37:04 GMT

Тег: "7073226-1521527798;gz"

Истекает: Чт, 19 Ноя 1981 08:52:00 GMT

Прагма: без кэширования

Сервер: LiteSpeed

Варьируется: Accept-Encoding

X-Firefox-Spdy: h2

кодировка: utf-8

x-litespeed-cache: попадание,частное

x-powered-by: Craft CMS

Это предоставит вам большую часть информации о конфигурации ваших веб-страниц этого домена.

Надеюсь, это помогло. Если у вас возникнут какие-либо другие вопросы, не стесняйтесь обращаться к нам, я с радостью вам помогу.

Связанный контент