Как настроить общедоступный маршрут LB к прокси-серверу на AWS?

. Я построил этот маршрут трафика в VPC.

Route53->ACM(SSL)->Public ALB->EC2(Nginx proxy)->Private ALB->ECS(Internal App)

Группа безопасности EC2 разрешает tcp 80 и 443. Группа безопасности ECS разрешает 80 из группы безопасности EC2.

Когда я обращаюсь к домену, зарегистрированному в Route53, возникает ошибка 504 DNS look up failed. При доступе к DNS-имени общедоступного ALB возникла ошибка 503 Service Temporarily Unavailable.

Я уверен, что ACM настраивается, и DNS-имя общедоступного LB регистрируется на Route53 с доменом.

Настройки ALB в общедоступной подсети выполняет Terraform

resource "aws_lb_listener" "http" {
  load_balancer_arn = aws_lb.this.arn
  port              = "80"
  protocol          = "HTTP"

  default_action {
    type = "redirect"

    redirect {
      port        = "443"
      protocol    = "HTTPS"
      status_code = "HTTP_301"
    }
  }
}

resource "aws_lb_listener_rule" "http_redirect" {
  listener_arn = aws_lb_listener.proxy.arn
  priority     = 1

  action {
    type = "redirect"

    redirect {
      port        = "443"
      protocol    = "HTTPS"
      status_code = "HTTP_301"
    }
  }

  condition {
    path_pattern {
      values = ["/*"]
    }
  }
}

resource "aws_lb_listener_rule" "http_forward" {
  listener_arn = aws_lb_listener.http.arn
  priority     = 2

  action {
    type             = "forward"
    target_group_arn = aws_lb_target_group.proxy.arn
  }

  condition {
    host_header {
      values = ["proxy.portsite.com"]
    }
  }
}

resource "aws_lb_listener_rule" "https_forward" {
  listener_arn = aws_lb_listener.https.arn

  action {
    type             = "forward"
    target_group_arn = aws_lb_target_group.proxy.arn
  }

  condition {
    host_header {
      values = ["proxy.portsite.com"]
    }
  }
}

Нужны ли для маршрутизации и http_redirect, и http_forward? Или только http_redirectхорошо? И проблема, вызванная этим?

0
задан 9 October 2021 в 04:03
1 ответ

Правило перенаправления используется для принудительного перехода с http на http S .

Чтобы отправить трафик на серверную часть, вам нужно использовать действие переслать .

Вы можете проверить заголовок HTTP «Сервер», чтобы узнать, кто отправляет ошибку 503 (либо ALB, nginx, ECS,...)

Группа безопасности ECS разрешает 80 из группы безопасности EC2.: Группа безопасности ECS должна разрешать частный ALB. частная группа безопасности ALB должна разрешать экземпляр EC2

0
ответ дан 9 October 2021 в 08:23

Теги

Похожие вопросы