INTEGRITY Документация

5. Добавление исключений с помощью Page Rules

В Настройка параметров HTTPS руководстве вы настроили параметры зоны, которые применяются ко всем входящим запросам для example.com. В этом руководстве вы добавите исключение к этим настройкам с помощью Page Rules.

А именно вы повысите уровень безопасности для URL, который требует больших ресурсов для рендеринга и не может кэшироваться: https://www.example.com/expensive-db-call. Кроме того, вы добавите переадресацию со старого URL, на котором раньше размещалась эта страница.

1. Создайте конфигурацию Page Rules

Создайте новую ветку и добавьте конфигурацию.

git checkout -b step5-pagerule

Page Rules позволяют переопределять настройки зоны для отдельных шаблонов URL. Добавьте два правила Page Rules в main.tf:

# Increase security for expensive database operations
resource "cloudflare_page_rule" "expensive_endpoint_security" {
  zone_id  = var.zone_id
  target   = "${var.domain}/expensive-db-call"
  priority = 1

  actions = {
    security_level = "under_attack"
  }
}

# Redirect old URLs to new location
resource "cloudflare_page_rule" "legacy_redirect" {
  zone_id  = var.zone_id
  target   = "${var.domain}/old-location.php"
  priority = 2

  actions = {
    forwarding_url = {
      url         = "https://www.${var.domain}/expensive-db-call"
      status_code = 301
    }
  }
}

Первое правило повышает уровень безопасности до режима «Under Attack» для конечной точки базы данных. Второе правило перенаправляет старые URL-адреса с помощью постоянного редиректа 301.

2. Просмотрите изменения и примените их:

terraform plan
terraform apply

3. Проверьте изменения:

Проверьте работу редиректа:

curl -I https://example.com/old-location.php

Ожидаемый результат:

HTTP/1.1 301 Moved Permanently
Location: https://example.com/expensive-db-call

Проверьте повышенный уровень безопасности (режим Under Attack возвращает страницу с проверкой):

curl -I https://example.com/expensive-db-call

Ожидаемый результат:

HTTP/1.1 503 Service Temporarily Unavailable

Ответ с кодом 503 означает, что активен режим Under Attack: посетителям показывается страница с проверкой, прежде чем предоставить доступ, чтобы защитить сайт от DDoS-атак.

4. Зафиксируйте и слейте изменения:

git add main.tf
git commit -m "Step 5 - Add two Page Rules"
git push

Запрос работает так, как и ожидалось. В первом случае глобальная сеть Cloudflare отвечает 301 перенаправляя браузер на новый адрес. Во втором случае глобальная сеть Cloudflare сначала отвечает 503, что соответствует режиму Under Attack.