Назад | Перейти на главную страницу

Проблемы со сжатием 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

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

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

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

Я посмотрю, смогу ли я обобщить то, что со мной произошло, и, возможно, это кому-то поможет.

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

Все разворачивается.

Запустите тест GTMetrix в домене и получите F для gzip.

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

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

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

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

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

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

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

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

Это можно найти, если вы перейдете в Инструменты разработчика -> Выбрать сеть: * Когда вы увидели все ссылки на свои ресурсы, нажмите на верхнее доменное имя ссылки «noru.co.uk». * Это откроет ваши заголовки, которые выдадут тот же результат, что и команда curl:

Accept-Ranges: байты

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.

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

Длина содержимого: 3152

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

Дата: Вт, 20 марта 2018 г., 06:37:04 GMT

Etag: "7073226-1521527798; gz"

Истекает: Thu, 19 Nov 1981 08:52:00 GMT

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

Сервер: LiteSpeed

Vary: Accept-Encoding

X-Firefox-Spdy: h2

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

x-litespeed-cache: обращение, частный

x-powered-by: Craft CMS

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

Я надеюсь, что это помогло, если у вас есть другие проблемы, пожалуйста, не стесняйтесь обращаться к нам, так как я с радостью буду помогать.