Loading...

Справка CDN.com.tr

Настройка поведения кеша через Add Rule

Настраивайте ключ кеша домена/пути, TTL, методы/статусы, заголовки/cookie, оптимизацию и правила ограничения запросов.

Настройка поведения кеша через Add Rule

Настраивайте ключ кеша домена/пути, TTL, методы/статусы, заголовки/cookie, оптимизацию и правила ограничения запросов.

Путь в панели

  1. Management Panel
  2. CDN Accounts
  3. Advanced Management
  4. Add Rule
  5. Save / Apply Changes

Что решает Add Rule?

В этих примерах используются безопасные сценарии на базе origin WordPress: для статических файлов, строк запроса, заголовков/cookie и чувствительных путей сессии.

Кеш статических файлов

Агрессивное кеширование CSS/JS

Ускорьте загрузку ресурсов с помощью GET/HEAD, ответов 200/301/302/304 и TTL от 1 дня и выше; удалите параметры отслеживания кампаний из ключа кеша.

Pull / Push / Hosting Default, CNAME, или Full DNS
Сессия WordPress

Обход кеша для admin, login, корзины и оформления заказа

Обходите кеш при наличии cookie сессии или корзины; пути wp-admin и wp-login никогда не должны попадать в общий кеш.

WordPress platform Custom domain
Порядок в заголовках

Очистка заголовков origin и безопасная отладка

Игнорируйте Set-Cookie или Cache-Control при принятии решений о кешировании, скрывайте X-Origin-Debug/X-Powered-By от пользователей и включайте отладку upstream только временно.

Pull CDN Любой способ доставки
Ресурсоёмкий эндпоинт

Ограничение частоты запросов и разрешённый список query-параметров

Для путей, похожих на API, включайте в ключ кеша только параметры запроса, изменяющие содержимое, и задайте лимит запросов.

Dynamic origin Default, CNAME, или Full DNS

Предварительные требования

  • Должны быть выбраны аккаунт и имя хоста.
  • Сохранение Add Rule может запустить процесс живого развёртывания/применения; сначала проверьте путь, домен и порядок правил.
  • На скриншотах используются значения вроде `www.example.com` вместо реальных доменов клиентов.
  • Для приложений с сессиями, таких как WordPress, сначала пишите правила обхода admin/login/корзины, а уже потом настраивайте широкое кеширование.

Модель принятия решений

Сначала определите область действия

Сузьте правило по домену, протоколу и регулярному выражению пути до изменения поведения; широкие правила `/` требуют внимательной проверки.

  • Service domain: какое имя хоста затрагивается?
  • Type: нужны ли HTTP и/или HTTP-2?
  • Path Regex: конкретный файл, папка или эндпоинт?

Модель query-параметров в ключе кеша

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

  • Full query: каждый параметр создаёт отдельный объект кеша.
  • Ignore all/listed: объединяет параметры кампаний.
  • Allow listed: оставляет только параметры вроде `lang` или `v`.

Обход кеша или TTL?

Персонализированный контент, корзина и admin-страницы должны обходить кеш; статический и анонимный контент может получить TTL.

  • Bypass Cache: пути сессии/admin/корзины.
  • Cache Expire Time: статический и анонимный контент.
  • Response TTL: отдельная длительность для 404/500 и других статусов.

Поведение заголовков и cookie

Игнорирование заголовка origin при решениях о кешировании — это не то же самое, что скрытие его от клиента.

  • Ignore Headers: исключить заголовки из решений о кешировании CDN.
  • Hide Headers: не показывать заголовки ответа браузеру.
  • Bypass by Cookie: пропускать кеш при наличии cookie.

Пошаговое руководство

1

Открытие Add Rule из Advanced Management

Настройки на уровне аккаунта задают общее поведение; Add Rule задаёт точное поведение для домена/пути.

  • Выберите целевой аккаунт в CDN Accounts.
  • Откройте Advanced Management.
  • Нажмите Add Rule.

Ожидаемый результат: Открывается модальное окно правила, новое правило готовится в рамках выбранного аккаунта.

cdnctl equivalent
cdnctl accounts list
export ACCOUNT_UUID=<selected_account_uuid>
cdnctl cdn advanced-rules list --account "$ACCOUNT_UUID" --format table
2

Сужение области по домену, протоколу и регулярному выражению пути

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

  • Выберите имя хоста в Service Domain Name.
  • Выберите HTTP и/или HTTP-2.
  • Введите шаблон файла, папки или эндпоинта в Path Regex.
  • При необходимости выберите пресет кеширования.

Ожидаемый результат: Правило соответствует только целевому имени хоста и путям.

cdnctl equivalent
cat > rule-static-assets.json <<EOF
{"server_domain_names":["www.example.com"],"type":["http","http2"],"path_regex":"^/cdn-help/rules/(cache-demo\\.css|query-demo\\.json)$"}
EOF
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file rule-static-assets.json
3

Настройка ключа кеша, TTL, методов и статусов

Для статических файлов удалите параметры запроса для отслеживания из ключа кеша и оставьте только реальные варианты.

  • Выберите Ignore listed params или Allow listed params в Cache Key Query Params.
  • Введите Cache Expire Time.
  • Ограничьте Allowed Cache Methods и Allowed Cache Responses.
  • При необходимости добавьте значения TTL для отдельных статусов.

Ожидаемый результат: Анонимные объекты CSS/JSON кешируются без разделения кеша по ненужным параметрам запроса.

cdnctl equivalent
jq '. + {"cache_query_mode":"ignore_list","cache_query_params":["utm_*","gclid","fbclid","msclkid"],"cache_valid_time":"1 day","allowed_cache_methods":["GET","HEAD"],"allowed_cache_responses":["200","301","302","304"],"response_cache_times":{"200":"1 day","301":"1 week","302":"2 hours","304":"1 day"}}' rule-static-assets.json > rule-static-assets-cache.json
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file rule-static-assets-cache.json
4

Исключение путей сессии WordPress из кеша

Пути admin, login, корзины и оформления заказа должны сохранять поведение origin, а не возвращать попадания в кеш.

  • Ограничьте Path Regex путями `/wp-admin`, `wp-login.php`, `cart` или `checkout`.
  • Включите Bypass Cache.
  • Введите cookie сессии/корзины построчно в Bypass by Cookie.
  • При необходимости добавьте Request Limit или правила защиты от хотлинкинга.

Ожидаемый результат: Запросы с сессией не возвращают другому пользователю общий кешированный контент.

cdnctl equivalent
cat > rule-wordpress-sensitive.json <<EOF
{"server_domain_names":["www.example.com"],"type":["http","http2"],"path_regex":"^/(wp-admin|wp-login\\.php|cart|checkout)(/.*)?$","bypass":"on","bypass_by_cookie":"wordpress_logged_in\nwoocommerce_cart_hash\nwp_woocommerce_session_","limit":30,"per_time":10}
EOF
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file rule-wordpress-sensitive.json
5

Настройка заголовков, cookie, оптимизации и отладки

Отдельно решите, влияют ли заголовки origin на решения о кешировании и показываются ли они браузерам.

  • Используйте Ignore Headers для заголовков, которые не должны влиять на решения о кешировании.
  • Используйте Hide Headers для заголовков, которые не должны показываться клиентам.
  • При необходимости добавьте Custom Headers для запроса.
  • Включайте Debug upstream headers только на время временного тестирования.
  • Тестируйте Image optimization и Google pagespeed только на ограниченных путях.

Ожидаемый результат: Заголовки origin контролируются осознанно, а отладка не остаётся включённой в продакшн-трафике.

cdnctl equivalent
jq '. + {"ignore_headers":["Cache-Control","Set-Cookie"],"hide_headers":["X-Origin-Debug","X-Powered-By"],"custom_headers":"X-Forwarded-Host: $host\nX-CDN-Rule-Debug: temporary","debug_upstream_headers":true,"image_optimization":"on","white_space":"on"}' rule-static-assets-cache.json > rule-headers-debug.json
cdnctl cdn advanced-rules validate --account "$ACCOUNT_UUID" --file rule-headers-debug.json
6

Сохранение, отслеживание развёртывания и проверка публичного URL

Поскольку Save может запустить процесс живого применения, финальная проверка выполняется по пути/домену/TTL/заголовкам.

  • Перед сохранением проверьте изменённые поля и порядок правил.
  • После Save следите за статусом Operations или Apply Changes.
  • Проверьте статус, заголовки кеша, скрытые заголовки и обход по cookie на публичном URL.

Ожидаемый результат: После успешного выполнения операции подходящие запросы показывают новое поведение кеша/заголовков/ограничения частоты.

cdnctl equivalent
cdnctl cdn advanced-rules create --account "$ACCOUNT_UUID" --file rule-headers-debug.json
cdnctl operations list --account "$ACCOUNT_UUID"
curl -I "https://www.example.com/cdn-help/rules/cache-demo.css?utm_source=test"
curl -I -H "Cookie: wordpress_logged_in=redacted" "https://www.example.com/wp-admin/"

Проверка

  • Порядок правил и изменённые поля проверены.
  • Широкие регулярные выражения `/` требуют явного подтверждения.
  • После тестирования отладочные заголовки upstream отключены.
  • После применения публичный URL, код статуса, поведение cache-key запроса и результат заголовков/cookie проверяются с помощью curl или DevTools браузера.
  • Если cdnctl 0.1.2 пока не предоставляет команд для расширенных правил, отправьте тот же payload через публичный API-поток `/api/advanced_managements/{account_uuid}/store`.

Сценарии использования

Административная часть/корзина WordPress обходит кеш, а статические файлы и анонимные JSON-пути кешируются намеренно.

Краткий порядок действий

  1. Откройте Advanced Management.
  2. Ограничьте область запроса через Add Rule.
  3. Заполните поля кеша, заголовков/cookie и безопасности.
  4. После Save проверьте операции и публичный URL.

Проверки

  • Порядок правил понятен.
  • Регулярное выражение пути не шире, чем нужно.
  • После тестирования отладочные заголовки отключены.
  • Изменённые поля видны перед сохранением.

Похожие страницы

Чтение журналов WAF

Используйте журналы WAF, чтобы объяснить заблокированный или подозрительный трафик, не раскрывая внутренние системы логирования.