У меня был дистрибутив 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
Это предоставит вам большую часть информации о вашей конфигурации для ваших веб-страниц этого домена.
Я надеюсь, что это помогло, если у вас есть другие проблемы, пожалуйста, не стесняйтесь обращаться к нам, так как я с радостью буду помогать.