Правила страниц
Переопределение кеширования, ограничения частоты запросов, заголовков ответов, SSL исходного сервера и перенаправлений для URL, соответствующих заданным условиям.
Правила страниц позволяют по-особому обрабатывать URL, соответствующие заданным условиям. Например, можно дольше кешировать статические ресурсы, отключить кеширование панели администрирования или перенаправить старый путь на новый адрес.
Перейдите в CDN → CDN-домены, откройте домен и выберите Правила страниц. URL в консоли: /cdn/domains/<domain>/rules.
Некоторые действия правил страниц ещё внедряются. На этой странице перечислены только действия, которые пограничные узлы применяют сейчас. В консоли есть и другие параметры, но после сохранения они пока не действуют.
Состав правила
| Поле | Описание |
|---|---|
| Имя | Название для распознавания правила, например «Кеширование статических ресурсов» |
| Приоритет | От 1 до 999. По умолчанию 100 |
| Включено | Отключённое правило сохраняется, но не применяется |
| Условия | Одно или несколько условий, объединённых оператором Все совпадают (AND) или Любое совпадает (OR) |
| Действия | Одно или несколько действий, выполняемых при совпадении запроса |
Сопоставление URL
Правила страниц используют тот же механизм условий, что и правила межсетевого экрана. Для описания URL чаще всего используются следующие поля и операторы:
| Поле | Пример |
|---|---|
| Путь / Путь URI | начинается с /static/; регулярное выражение ^/blog/\d+ |
| Расширение файла | в списке jpg, png, css, js |
| Host | равно img.example.com (полезно, если у домена несколько имён хостов) |
| Строка запроса | имя параметра utm_source, оператор существует |
| Заголовок / Cookie | укажите имя, затем условие для его значения |
| HTTPS, Метод HTTP, IP-адрес клиента, Код страны, ASN, User Agent, Referer | уточняйте условия по атрибутам запроса |
Доступные операторы: равно, не равно, содержит, не содержит, начинается с, заканчивается на, регулярное выражение, в списке, не в списке, больше/меньше (или равно), существует и не существует.
Сопоставление пути учитывает регистр. Для сопоставления каталога используйте начинается с. Это понятнее регулярного выражения и проще в настройке.
Действия, которые применяются
| Панель действий | Применяемые настройки | Результат |
|---|---|---|
| Кэш | Режим кеширования Отключено; время кеширования (секунды) | Отключено направляет совпавшие запросы в обход пограничного кеша. Время кеширования заменяет TTL пограничного кеша для кешируемых ответов. Ответы, которые нельзя кешировать, например с Set-Cookie или no-store, по-прежнему не кешируются |
| Ограничение запросов | Запросы, окно (секунды), ключ (IP-адрес, страна или путь URI) | Запросы сверх лимита получают 429. Для ограничения по заголовку или файлу cookie используйте правило межсетевого экрана |
| WAF | Выключатель | Пропускает проверку WAF для совпавших запросов, что полезно для доверенных URL обратного вызова. Выбор наборов правил здесь не действует |
| Свои заголовки | Имя и значение | Добавляет или заменяет заголовки HTTP-ответов |
| SSL/TLS | Режим SSL исходного сервера; принудительный HTTPS (клиент) | Меняет режим SSL подключения к исходному серверу для этих URL (отключено, гибкий, полный или строгий). При включённом принудительном HTTPS HTTP-запросы получают перенаправление 301 на тот же URL по HTTPS |
| Перенаправление | Целевой URL и код состояния (301, 302, 307 или 308) | Возвращает перенаправление на фиксированный целевой URL без обращения к исходному серверу |
Следующие настройки пока не действуют. Задавайте их на соответствующих страницах домена:
- На панели «Кеш»: режим времени кеширования, обработка строки запроса, режим хоста кеша, варианты кеша по устройству, стране или языку и выдача устаревшего содержимого. Настройте их на странице Кэш.
- Панель Кеш браузера, которая ещё внедряется. Настройте кеширование в браузере на странице Кеш.
- Панель Оптимизация (Gzip, Brotli и минификация). Настройте их на странице Оптимизация.
Создание правила
- На странице Правила страниц нажмите Добавить правило.
- Введите имя, при необходимости измените приоритет и оставьте Включено активным.
- В разделе Условия сопоставления добавьте условия и выберите «Все совпадают» или «Любое совпадает».
- В разделе Выполнить действие нажмите Включить на каждой нужной панели действий и заполните настройки. Нажмите Удалить, чтобы убрать панель.
- Нажмите OK для сохранения. Правило начнёт действовать на пограничных узлах за время от нескольких секунд до минуты.
Для сохранения правила требуется хотя бы одно условие и одно действие.
Пример: кеширование статических ресурсов на 7 дней
- Условие: расширение файла в списке
jpg,png,css,js - Действие: кеш, режим Включено, время кеширования
604800
Пример: отключение кеширования панели администрирования
- Условие: путь начинается с
/admin - Действие: кеш, режим Отключено
Совпадение нескольких правил
Запрос может соответствовать нескольким правилам страниц; действия всех совпавших правил применяются совместно. Перенаправление или принудительный HTTPS немедленно завершает обработку, поэтому последующие правила не выполняются.
Не задавайте для одних и тех же URL противоречащие значения в разных правилах, например два разных времени кеширования. Исключите пересечение условий или объедините такие правила в одно.
Квота правил
Тариф может ограничивать количество правил страниц. В этом случае в верхней части страницы отображается баннер с использованием квоты, например «Квота правил: 3/5». При достижении лимита удалите ненужные правила или перейдите на более высокий тариф.
API
Конечные точки правил страниц находятся в /api/user/cdn/rules:
curl -X POST "https://api.yeap.cloud/api/user/cdn/rules/create" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"domain_id": 123,
"name": "Static assets 7d",
"priority": 100,
"enabled": true,
"settings": {
"matcher": {"op": "and", "conditions": [
{"collection": "EXTENSION", "op": "in", "var": ["jpg", "png", "css", "js"]}
]},
"action": {"cache": {"enabled": "on", "ttl": 604800}}
}
}'Другие конечные точки:
- Список правил:
GET /api/user/cdn/rules?domain_id=123 - Обновление правила:
POST /api/user/cdn/rules/update, сidв теле запроса - Удаление правила:
DELETE /api/user/cdn/rules/delete?id=<id>