Документация Запланировать пилот

Устранение неполадок правил ограничения скорости

Некоторые подзапросы Workers считаются отдельными запросами

Cloudflare может учитывать подзапросы (subrequests) Workers в той же зоне как отдельные запросы, из-за чего правило ограничения скорости может сработать раньше, чем ожидается. Это происходит, когда правило ограничения скорости настроено с Также применять ограничение скорости к кешированным ресурсам установлено значение false.

Чтобы предотвратить такое поведение, необходимо исключить из правила ограничения скорости все подзапросы Workers, поступающие из той же зоны, с помощью cf.worker.upstream_zone поле. Например, можно добавить следующее подвыражение в выражение правила ограничения скорости:

and (cf.worker.upstream_zone == "" or cf.worker.upstream_zone != "<YOUR_ZONE>")

Первое условие (проверка на пустую строку) соответствует прямым запросам посетителей, а второе соответствует подзапросам, не происходящим из вашей зоны, тем самым исключая из правила ограничения скорости подзапросы из той же зоны.

Правила ограничения скорости с условиями по имени хоста и Origin Rules

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

Это происходит потому, что выражение правила ограничения скорости оценивается в две фазы:

  1. Фаза запроса (сопоставление правила): выражение вычисляется относительно исходного запроса, где http.host содержит исходное имя хоста. Правило срабатывает так, как ожидается.
  2. Фаза ответа (увеличение счётчика): если правило использует выражение для подсчёта или имеет Также применять ограничение скорости к кешированным ресурсам отключено, увеличение счётчика происходит после ответа. К этому моменту Origin Rules уже переписали Host заголовок на новое значение, поэтому выражение, содержащее исходное имя хоста, больше не совпадает.

В результате правило соответствует запросам, но счётчик никогда не увеличивается, и ограничение скорости не применяется.

Решение

Чтобы устранить эту проблему, выполните одно из следующих действий:

Поведение fail-open при ограничении скорости

Правила ограничения скорости Cloudflare работают в режим fail-open (пропуская запросы вместо их блокировки) при перегрузке инфраструктуры. Когда базовая инфраструктура испытывает высокую нагрузку, Cloudflare может пропускать обновления счётчика скорости и применение ограничения скорости для затронутых запросов, вместо того чтобы блокировать легитимный трафик.

Для событий fail-open не предусмотрено видимого клиентам сигнала. Если правило ограничения скорости не блокирует трафик, который должно блокировать (пропуск), а конфигурация правила при этом корректна, причиной может быть нагрузка на инфраструктуру в соответствующем дата-центре.

Подсчёт по каждому дата-центру: Счетчики ограничения скорости ведутся отдельно для каждого дата-центра Cloudflare. Трафик, распределенный между множеством дата-центров, может удерживать скорость в рамках каждого дата-центра ниже порога, даже если суммарная скорость его превышает. Учитывайте это при настройке пороговых значений для трафика, распределенного по всему миру.

Запросите бесплатный пилот

Запланировать пилот