症状
Alibaba Cloud CDNを使用してドメイン名を高速化すると、ユーザーがドメイン名にアクセスすると、ブラウザーに次のメッセージが表示されます。このページは機能しません。 xxxはあなたを何度もリダイレクトしました。 エラーメッセージ: ERR_TOO_MANY_REDIRECTS。
原因
ブラウザは、1回のリクエストに対するリダイレクトの最大数を制限します。 たとえば、Chromeは20回以上リダイレクトされた後にリクエストを終了し、あまりにも多くの指示エラーを表示します。
Alibaba Cloud CDNの使用前にこのエラーが発生したことがなく、Alibaba Cloud CDNの使用後に発生することがある場合、オリジンサーバーが不適切に設定され、back-to-originルーティング中に無限のリダイレクションループが発生する可能性があります。
一般的な原因: オリジンサーバーでHTTPS経由の強制リダイレクトが有効になっている場合、HTTP経由のback-to-originリクエストはHTTPSにリダイレクトされます。 この場合、オリジンポート80または静的オリジンプロトコルポリシーがドメイン名に設定されている場合、HTTPを介したback-to-originリクエストは無限ループを引き起こす可能性があります。
たとえば、オリジンポート80が設定されている場合、リダイレクションループのロジックは次のようになります。
- クライアントは、高速化ドメイン名
http://example.aliyun.com/
にアクセスします。 - Alibaba Cloud CDNは、back-to-originルーティング用にポート80を指定します。 back-to-originリクエストがHTTP経由でオリジンサーバーに送信されると、オリジンサーバーはリクエストを
https://example.aliyun.com/
にリダイレクトします。 - クライアントはリダイレクトされたURL
https://example.aliyun.com/
にアクセスします。 - Alibaba Cloud CDNはback-to-originルーティング用にポート80を指定しているため、back-to-originリクエストは引き続きHTTP経由で送信され、オリジンサーバーはリクエストを
https://example.aliyun.com/
再送信にリダイレクトします。 - クライアントはリダイレクトされたURLに
https://example.aliyun.com/
再度アクセスします。その後、ステップ3と4が無限に繰り返されます。
解決策
発生した問題が上記のロジックを満たしている場合は、次の手順を実行してback-to-origin構成を変更できます。
- オリジンポートを443に設定します。 詳細については、「オリジンサーバーの設定」をご参照ください。
- 静的オリジンプロトコルポリシーを無効にするか、back-to-originルーティングのプロトコルとしてHTTPSを指定します。 詳細については、「オリジンプロトコルポリシーの設定」をご参照ください。
- ディレクトリ更新タスクを送信して、ルートディレクトリを更新します。 詳細については、「リソースの更新とプリフェッチ」をご参照ください。
- 更新タスクが完了したら、ローカルブラウザーのキャッシュをクリアして、もう一度お試しください。