Как вообще работают CloudFlare или CDN и могу ли я заставить их получать мой обновленный статический контент?

Я хотел бы включить CloudFlare для своего сервера WordPress, но я все еще очень часто вношу изменения. CloudFlare говорит, что кэширует статические файлы (javascript, css, изображения и т. д.), поэтому я предполагаю, что если бы я внес изменения в эти файлы и сохранил их на своих серверах, они не отображались бы измененными на их (по крайней мере, для пока).

Если я внесу изменения в эти файлы, будут ли они в конечном итоге распространяться на их серверы? Сколько времени это занимает?

Я сделал небольшой трюк, изменив src моих файлов css с «my.css» на «my.css?v=1.1» и «my.css?v=1.2» и т. д., когда я вношу изменения, поэтому это заставляет ваш браузер, чтобы получить более новую версию файла, потому что он обманывает его, заставляя думать, что это новый файл. Будет ли это также работать с CloudFlare или обходит это?

Спасибо.


person jas7457    schedule 30.08.2013    source источник


Ответы (2)


У вас есть несколько вариантов управления продолжительностью кэширования ресурсов.

Если вы перейдете в раздел домен > Настройки cloudFlare > Настройки Perfornamce > Минимальный срок действия TTL
, вы можете выбрать от 2 часов до 1 года. Это глобальная настройка сайта.

Если вы перейдете в раздел домен > правила страницы, вы сможете настроить кеш и другие данные для подраздела вашего сайта. Таким образом, это могут быть ваши каталоги CSS и JS, или это могут быть отдельные файлы.

Независимо от того, какие настройки вы используете, если вы перейдете в домен> настройки cloudflare> очистить кеш, вы сможете очистить отдельные ресурсы или весь кеш сайта.

Вы по-прежнему можете использовать свой метод управления версиями CSS. Одна деталь, на которую следует обратить внимание, заключается в том, что если вы используете my.css?v=1.1 и хотите, чтобы cloudflare кэшировал это для повышения производительности, вам нужно перейти в домен> Настройка cloudFlare> Настройки производительности> Уровень кэширования и установите это на агрессивный.

Если вы этого не сделаете, посетителям будет отправлен файл CSS с вашего сервера, а не с CloudFlare.

Надеюсь это поможет!

person David Taiaroa    schedule 01.09.2013

CloudFlare имеет два варианта настройки кэширования. По умолчанию настраивается в их панели управления. Здесь вы можете установить такие параметры, как «Кэшировать все» и контролировать максимальный возраст.

Но CloudFlare также учитывает заголовки вашего контента. Я предпочитаю использовать их, так как это позволяет мне максимально точно контролировать. Заголовок, о котором идет речь, Cache-Control. Если этот заголовок отсутствует, будет использоваться опция панели управления.

Если вы отправляете заголовок Cache-Control: no-cache, запрос всегда будет проверять исходный сервер, чтобы убедиться, что контент обновлен. Обратите внимание, что это приведет к тому, что каждый запрос попадет в ваш источник. Это замедлит ваши ответы, хотя большую часть времени вы сможете обслуживать ответ 304 NOT MODIFIED, поэтому вы можете сэкономить немного пропускной способности.

Если вы отправите заголовок, Cache-Control: max-age=3600 CloudFlare будет обслуживать кешированный контент не более max-age секунд (в данном случае 1 час) после запроса, прежде чем проверять ваш исходный сервер.

С этим заголовком есть намного больше опций, но это основы.

Я сделал небольшой трюк, изменив src моих файлов css с «my.css» на «my.css?v=1.1» и «my.css?v=1.2» и т. д., когда я вношу изменения, поэтому это заставляет ваш браузер, чтобы получить более новую версию файла, потому что он обманывает его, заставляя думать, что это новый файл. Будет ли это также работать с CloudFlare или обходит это?

Это все еще будет работать. HTTP рассматривает каждый URL-адрес как отдельный объект, поэтому новый URL-адрес необходимо будет получить.

person Kevin Cox    schedule 15.04.2014