VercelでCloudflareのプロキシを使用した際のリダイレクトループ
VercelでCloudflareのプロキシを使用する際に発生する「err_too_many_redirects」エラーの原因と解決方法について
Table of Contents
- # TL;DR
- # エラーが発生する状況
- # エラーの原因と問題の流れ
- # 解決方法
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
に変更すれば解決します。これにより、以下のような正常なフローとなります: