LoginSignup
3
2

More than 1 year has passed since last update.

CloudFront+ALB+ECS環境で意図しないリダイレクトが発生するとき確認すること

Last updated at Posted at 2021-06-22

構成

CloudFront → ALB → ECS(Nginx用コンテナ→App用コンテナ)

  • CloudFrontのドメイン → test.vamdemic.com
  • ALBのドメイン → test-alb.vamdemic.com

事象

CloudFrontでOriginに指定しているドメイン名でアクセスし、302リダイレクト処理がかかる部分で、ALBのカスタムドメイン名が返ってくる。test-alb.vamdemic.comでリダイレクトされてしまう。
もっと具体的にいうと、nginxへのリクエストの応答ヘッダーのlocationがtest-alb.vamdemic.comで返ってくる。

設定

  • Nginxコンテナのコンフィグ設定はこのような感じ
  • なのでhostヘッダーはさらに後ろのApp用コンテナへはわたっている
nginx.conf
server {
  listen 80;
  server_name _;


  location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
  }
}

原因

CloudFrontからHostヘッダーをALBへ渡す設定をしていなかったため、リクエストを実際に返すNginxはALBのドメインから来たと認識して、そのドメインをlocationヘッダーに入れていた(リダイレクトさせていた)
分かればすごく難しいということではないけれど、CloudFrontでハマる

対処

CloudFrontのBehevier→WhiteList設定でhostヘッダーを設定する
image.png

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2