CloudFlare経由でredirect loop

新たなドメインをCloudFalre経由で外部に公開しようとしたところ、ブラウザに「リダイレクトが繰り返し行われました。」と表示されてしまいました。リダイレクトループというやつです。

Dockerでnginx-proxyletsencrypt-nginx-proxy-companionとWordPressを使ったサイトなので、そのあたりが原因かと思って調べたのですが、どうも設定は問題なさそうです。同じnginx-proxyの裏にある別ドメインのWordPressには問題なくアクセスできています。

CloudFlareを経由せずにアクセスしたり、ログを見たりしていたところ、どうもCloudFlareからnginx-proxyへのアクセスがHTTPSではなくHTTPとなっているようでした。nginx-proxyへのHTTPアクセスは、Let’s Encryptのチャレンジに使う/.well-known/acme-challenge/を除いてHTTPSにリダイレクトするようにしているため、CloudFlareでHTTPSアクセスがHTTPアクセスに変換されるとループしてしまいます。

しかし、CloudFlareの設定は「フル」となっているので、サーバーへはHTTPSでアクセスされるはずです。

そこで、とりあえず「フル(厳密)」に切り替えてみました。Let’s Encryptでサーバー側にも正しい証明書は入っているので、「フル(厳密)」にしても問題ないはずです。

すると、すぐに問題なくアクセスできるようになりました。しばらくして「フル」に戻してみましたが、リダイレクトループにはなりませんでした。

設定を一度切り替えたおかげで正しく動くようになったのか、ドメインを登録したばかりで正しく動くまでに時間がかかっていたのかはよく分かりませんが、同じような問題が起きた時は、この設定を一度切り替えてみると正しく動くようになるかもしれません。

コメント

タイトルとURLをコピーしました