ELB背後のHTTPリダイレクトのループ回避


もう3月も半ば。兄猫みゃおの一周忌も過ぎて、桜もちらほら。早過ぎます〜

さて、ちょっと気になっていたことがあって、検索でヒットしたページにアンカーを打っておきます。

システム構成としては、ELB (Application Load Balancer) が HTTPS を終端した後、443/https と80/http のどちらも EC2サーバーへ繋いでくれます。ここで HTTP を HTTPS にリダイレクトしたいんですが、それをサーバー側でやる場合(ELB の設定でもできるそうです)。

このときサーバーはどちらも80/http で受けるので、常にリダイレクトすると無限ループになります。そこで「元々 ELB に届いた時に HTTPS だったか」判定する必要があって、そのとき使えるのが HTTP リクエストヘッダーの X-Forwarded-Proto です。

AWS のガイド: HTTP headers and Application Load Balancers (Elastic Load Balancing)


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です