O hirunewani blog

VercelでCloudflareのプロキシを使用した際のリダイレクトループ

Created at

VercelでCloudflareのプロキシを使用する際に発生する「err_too_many_redirects」エラーの原因と解決方法について

TL;DR

次の公式ドキュメントに書かれている内容が全てです。

https://vercel.com/guides/resolve-err-too-many-redirects-when-using-cloudflare-proxy-with-vercel

現在のブログでドメインを割り当てる際に遭遇したのと、日本語で書いているソースが見当たらなかったので書いています。そのため、この記事に新規性はありません

エラーが発生する状況

Cloudflareプロキシを使用しているドメインをVercelプロジェクトに割り当てると、デフォルトの設定から変更していない場合err_too_many_redirectsエラーが発生します。

エラーの原因と問題の流れ

このエラーは、CloudflareのSSL/TLS設定における”Flexible”モードが原因で発生します。以下のような無限ループが発生してしまいます:

リダイレクトループの問題

このループは以下の理由で発生します:

  • Cloudflareは外部からのHTTPSリクエストを受け付ける
  • しかし、バックエンド(Vercel)へはHTTPで転送する
  • VercelはHTTPSを強制するため、再度HTTPSへリダイレクト
  • この過程が無限に繰り返される

解決方法

CloudflareのSSL/TLS設定をFullに変更すれば解決します。これにより、以下のような正常なフローとなります:

正常なフロー