Я перехожу на Amazon Cloudfront для обслуживания изображений на моем сайте. Чтобы уменьшить нагрузку, когда мы, наконец, сделаем ее вживую, я подумал о том, чтобы разогревать кеш, нажав URL-адреса изображений (я делаю запрос от Индии и ожидаю, что большинство пользователей запросят от того же региона, поэтому нет необходимости иметь копию объекта на все края по всему миру).MISS от Cloudfront после HIT от Cloudfront
Проблема заключается в том, что скрипт использует завиток для запроса изображения, и когда я получаю доступ к одному и тому же URL-адресу в браузере, я получаю MISS из Cloudfront. Таким образом, Cloudfront создает две копии объекта для этих двух запросов.
Моя текущая конфигурация Cloudfront пересылает запрос Content-Type Заголовок в начало.
Как настроить Cloudfront так, чтобы он вообще не интересовался заголовками запросов, и как только я сделал запрос (будь то завиток или используемый браузер), он должен обслуживать весь будущий запрос для того же ресурса из края, а не из источника.
Запрашиваемые/Ответные заголовки Я боюсь, что URL-адрес Cloudfront не будет доступен извне (пока мы не продолжим жить), но я отправляю заголовки запросов/ответов, это должно дать вам справедливую идею. Также вы можете проверить заголовки кэширования при возникновении - https://origin.ixigo.com/image/upload/t_thumb,f_auto/r7y6ykuajvlumkp4lk2a.jpg
Ответ после двух последовательных запроса с помощью браузера
Remote Address: 54.230.156.66: 443
URL запроса: https://youcannotaccess.com/image/upload/t_thumb,f_auto/r7y6ykuajvlumkp4lk2a.jpg
Метод запроса: GET
Status Code : 200 OK
Response Headers
просмотреть исходный
Accept-Диапазоны: байты
Возраст: 23
Cache-Control: общественность, макс возраста = 31557600
соединения: держать-жив
Content-Length: 8708
Content-Type: изображение/JPG
Дата: Пт, 27 Nov 2015 9:16:03 GMT
ETag: "- 170562206"
Last-Modified: Вс, 29 июня 2014 3:44:59 GMT
Vary: Accept-Encoding
Via: 1,1 7968275877e438c758292828c0593684.cloudfront.net (CloudFront)
X-АМЗ -Cf-Id: fcbGLv8uBOP89qfR52OWa-NlqWkEREJPpZpy9ix0jdq8-a4oTx7lNw ==
X-Backend: image6_40
X-Cache: Hit от CloudFront
X-Cache-Hits: 0
X-устройств: ПК
X-DeviceType: шт
X-Powered-By: XYZ
Теперь же URL запрошены с использованием локон, но дал мне пропустить
локон ману-MDC: кэш Манук $ свернуться -I https://youcannotaccess.com/image/upload/t_thumb,f_auto/r7y6ykuajvlumkp4lk2a.jpg
HTTP/1.1 200 OK
Content-Type: изображение/JPG
Content-Length: 8708
соединения: держать-жив
Возраст: 0
Cache-Control: общественность, макс возраста = 31557600
Дата: Пт, 27 ноября 2015 9:16:47 GMT
ETag: "-170562206"
Last-Modified: Вс, 29 июня 2014 3:44:59 GMT
X-Backend: image6_40
X-Cache-Hits: 0
X-Device: pc
X-DeviceType: шт
X-Powered-By: хуг
Vary: Accept-Encoding
X-Cache: Miss от CloudFront
Via: 1,1 4d42171c56a4c8b5c627040e6aa0938d.cloudfront.net (CloudFront)
X-Amz- Cf-Id: fY0LXhp7NlqB-I8F5-1TIMnA6bONjPD3CEp7dsyVdykP-7N2mbffvw ==
Теперь это даст ХИТ
Ману-MDC: кэш Манук $ локон -I https://youcannotaccess.com/image/upload/t_thumb,f_auto/r7y6ykuajvlumkp4lk2a.jpg
HTTP/1.1 200 OK
C ontent-Type: изображение/JPG
Content-Length: 8708
соединения: держать-живой
Cache-Control: общественность, макс возраста = 31557600
Дата: Пт, 27 ноября 2015 9:16:47 GMT
ETag: "-170562206"
Last-Modified: вс, 29 июня 2014 03:44:59 GMT
X-Backend: image6_40
X-Cache-Hits: 0
X-устройств: ПК
X -DeviceType: pc
X-Powered by By: xyz
Возраст: 3
Vary: Accept-Encoding
X-кэша: Hit от CloudFront
Via: 1.1 6877899d48ba844a34ea4378ce336f06.cloudfront.net (CloudFront)
X-Дигг-Cf-Id: qpPhbLX_5t2Xj0XZuZdjWD2w-BI80DUVyL496meQkLfSEn3ikt7hNg ==
Любой заголовок запроса, который вы пересылаете, будет использоваться для целей кеширования. Это должно быть, потому что источник может изменить ответ любым отправленным вами заголовком. Не нужно пересылать заголовок «Content-Type», поскольку пересылка заголовка не применяется к запросам «писать» (например, 'PUT' или' POST') ... Все заголовки перенаправляются для этих запросов. Пересылка заголовков с помощью белого списка применяется только к запросам 'GET' и' HEAD' (и * возможно * 'OPTIONS'). –
Я не хочу, чтобы CloudFront использовал заголовки для кэширования, поэтому я выбираю заголовок, который никто не будет передавать в GET-запросе (изначально я не пересылал заголовки, поэтому, чтобы избежать поведения по умолчанию CloudFront, я перенаправил это). Но это ничего не должно делать, потому что я все равно не передаю его. Проблема: как мне настроить CloudFront так, чтобы он вообще не интересовался заголовками запросов, и как только я сделал запрос (зависание или использование браузера), он должен обслуживать весь будущий запрос для того же ресурса с края, а не происхождение. Я пробовал двигаться вперед, так что должно быть что-то еще. – manu4543
Это, или вы неправильно диагностируете проблему. Является ли это повторяемое поведение, которое вы видите, со всеми запрошенными объектами? –