← Провайдер Cloudflare Terraform / terraform / tutorial
5. Добавление исключений с помощью Page Rules
В Настройка параметров HTTPS руководстве вы настроили параметры зоны, которые применяются ко всем входящим запросам для example.com. В этом руководстве вы добавите исключение к этим настройкам с помощью Page Rules.
А именно вы повысите уровень безопасности для URL, который требует больших ресурсов для рендеринга и не может кэшироваться: https://www.example.com/expensive-db-call. Кроме того, вы добавите переадресацию со старого URL, на котором раньше размещалась эта страница.
1. Создайте конфигурацию Page Rules
Создайте новую ветку и добавьте конфигурацию.
git checkout -b step5-pagerulePage 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 apply3. Проверьте изменения:
Проверьте работу редиректа:
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.