HTTPS 設定を構成する チュートリアルでは、example.com へのすべての受信リクエストに適用するゾーン設定を構成しました。このチュートリアルでは、Page Rules を使って、これらの設定に例外を追加します。
具体的には、描画コストが高くキャッシュできない URL https://www.example.com/expensive-db-call のセキュリティレベルを上げます。あわせて、以前このページをホストしていた URL からのリダイレクトも追加します。
新しいブランチを作成し、設定を追記します。
git checkout -b step5-pagerulePage Rules は、特定の URL パターンに対してゾーン設定を上書きできます。main.tf に 2 つの Page Rules を追加します。
# 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
}
}
}1 つ目のルールは、データベースエンドポイントのセキュリティを Under Attack モードに上げます。2 つ目のルールは、古い URL を 301 の恒久リダイレクトで転送します。
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呼び出しは想定どおりに動作します。1 つ目では、Cloudflare のグローバルネットワークが 301 を返し、ブラウザーを新しい場所へリダイレクトします。2 つ目では、Cloudflare のグローバルネットワークがまず 503 を返します。これは Under Attack モードと一致します。