適切なレート制限リクエストの一致を阻止し、Cloudflare API経由でエラーを引き起こす一般的な問題のトラブルシューティングをします。
概要
レート制限の設定でよくある問題として、次のように適切なリクエスト一致を阻止するものがあります。
- ルールパターンで、HTTPまたはHTTPSプロトコルスキームを含む( https://example.com/*など)。HTTPまたはHTTPSトラフィックだけに一致するようにルールを制限するために、リクエスト一致で、たとえば、"schemes": [ "HTTPS" ]のように配列にスキームを使います。
- 末尾のスラッシュ文字(/)を忘れる。Cloudflareのレート制限は、ホームページ( example.com and example.com/など)のリクエストに限り、これを同等なものとして扱いますが、他のパスについては(example.com/path/とexample.com/pathなど)、同等なものとして扱いません。 末尾のスラッシュの有無に関わらず、両方のリクエストパスを一致させるために、ワイルドカード一致( example.com/path*など)を使います。
- クエリー文字列またはアンカーを含む(example.com/path?foo=bar、またはexample.com/path#section1など)。example.com/pathのようなルールは、example.com/path?foo=barのリクエストと一致します。
- IP Access ルールをレート制限にオーバーライドする。
- ポート番号を含む(example.com:8443/api/など)。レート制限製品はルール内でポート番号を考慮しないため、ルールに影響します。URLからポート番号を削除すると、レート制限ルールが予定通りにトリガーされます。
また、Cloudflare API経由でレート制限の設定を妨げる、一般的なエラーがいくつかあります。
- デコーディングがまだ実行されていない - これは、リクエストにContent-Type:application/jsonヘッダーがないことを示しています。この問題を解決するには、APIリクエストにヘッダーを追加します。
- Ratelimit.api.not_entitled - Enterpriseのお客様は、ルールを追加する前にCloudflareアカウントチームにご連絡していただく必要があります。
- 他のエラーについては、APIドキュメントに記載されています。エラーが特定できない場合は、Cloudflareサポートに連絡をして、APIキーを編集した後で失敗したAPIリクエストを提示してください。
制限事項
レート制限は、ユーザ定義のレートを超えるトラフィックの急増を制限するように設計されています。このシステムは、明確な数のリクエストがオリジンサーバーに到達できるようには設計されていません。リクエストの検出と内部カウンターの更新との間に遅延が生じることがあります。この遅延(最大で数秒)により、エッジでアクション(ブロッキングやチャレンジングなど)が実行される前に、過剰なリクエストがオリジンに到達する可能性があります。