GCP CDN не кеширует данные - PullRequest
0 голосов
/ 01 июня 2018

Мы развернули наш веб-сайт на виртуальной машине GCP и включили GCP CDN перед виртуальной машиной.Когда мы просматриваем веб-сайт в большинстве случаев, GCP CDN делает запросы к Origin VM.

Я использую приведенный ниже запрос стекового драйвера для проверки попаданий в кеш.

resource.type="http_load_balancer"
resource.labels.forwarding_rule_name="rule_name"
httpRequest.serverIp="gcpvmip"
httpRequest.requestUrl="request_url"
httpRequest.cacheFillBytes > 0

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Я точно знаю, в чем проблема ... GCP CDN не имеет функции Origin Shield.Еще хуже то, что с GCP почти каждый запрос поступает от другого огромного количества CDN PoP по всему миру.Без Origin Shield ваш сервер приложений является исходным сервером, и он должен заполнять кэш каждой граничной точки CDN.

По моему опыту, вы должны использовать GCP CDN только для защиты и кэширования DOS и повышения производительности TTFBHTML-запросы (специально для разгрузки SSL-рукопожатия).Используйте другой CDN для кэширования других ресурсов с лучшим соотношением кэш / попадание.

Некоторые поставщики CDN имеют Origin Shield, который помогает с соотношением попаданий в кэш.Например, создайте cdn.yourdomain.com с провайдером CDN, у которого есть функция Origin Shield, и обслуживайте оттуда весь другой статический контент.

Я знаю, что может показаться странным помещать CDN перед вашим CDN, но поверьте мнеэто работает потрясающе, и вы даже можете сэкономить деньги, если вы идете с CDN, который взимает меньшую плату за пропускную способность.Кроме того, GCP CDN кэширует содержимое только до 10 МБ.

0 голосов
/ 01 июня 2018

Судя по вашему последнему комментарию, вы ожидаете, что все запросы на ваш сайт будут обрабатываться из кэшей Cloud CDN без обращения к вашему исходному серверу.Тем не менее, при использовании CDN нормально видеть пропуски кэша.Каждый CDN использует множество кешей, а не один большой глобальный кеш.Тот факт, что контент для одного URL был вставлен в один кеш, не означает, что он будет присутствовать во всех кешах повсюду.Кроме того, непопулярные записи в кеш обычно извлекаются из кеша, чтобы освободить место для более популярного контента.

Вот некоторые соответствующие выдержки из документов Cloud CDN:

Cloud CDN использует кэши в многочисленныхместа по всему миру.Кэширование является реактивным в том смысле, что объект сохраняется в определенном кеше, если запрос проходит через этот кеш и если ответ является кешируемым.Объект, хранящийся в одном кеше, автоматически не копируется в другие кеши;заполнение кэша в кэш происходит только в ответ на запрос клиента.

https://cloud.google.com/cdn/docs/overview

Обратите внимание, что время истечения является верхней границей того, как долгозапись в кэше остается действительной.Нет гарантии, что запись в кеше останется в кеше до истечения срока ее действия.

https://cloud.google.com/cdn/docs/caching

Обратите внимание, что Cloud CDN работает с многочисленными кешами по всемумир, и старые записи кэша регулярно выселяются, чтобы освободить место для нового контента.В результате в рамках нормальной работы ожидается несколько заполнений кеша для каждого ресурса.

https://cloud.google.com/cdn/docs/support#low-hit-rate

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

...