在配置 HTTPS 设置教程中,您配置了适用于所有传入 example.com 请求的区域设置。在本教程中,您将使用页面规则 (Page Rules)向这些设置添加异常。
具体而言,您将提高一个已知渲染成本高昂且无法缓存的 URL 的安全级别:https://www.example.com/expensive-db-call。此外,您将添加一个从以前用于托管此页面的 URL 的重定向。
创建一个新分支并追加配置。
git checkout -b step5-pagerule页面规则允许您覆盖特定 URL 模式的区域设置。在您的 main.tf 中添加两条页面规则:
# 为昂贵的数据库操作提高安全性
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"
}
}
# 将旧 URL 重定向到新位置
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(遭受攻击)”模式。第二条规则使用 301 永久重定向将旧 URL 重定向。
terraform plan
terraform apply测试重定向功能:
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 Unavailable503 响应表明“Under Attack”模式处于活动状态,并在允许访问之前向访问者提供质询页面,以防止 DDoS 攻击。
git add main.tf
git commit -m "Step 5 - Add two Page Rules"
git push调用按预期工作。在第一种情况下,Cloudflare 全球网络响应 301,将浏览器重定向到新位置。在第二种情况下,Cloudflare 全球网络最初响应 503,这与“Under Attack”模式一致。