Score:0

จะตั้งค่าเส้นทาง LB สาธารณะเป็นพร็อกซีบน AWS ได้อย่างไร

ธง sd

ฉันสร้างเส้นทางการรับส่งข้อมูลนี้ใน VPC

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

กลุ่มความปลอดภัยของ EC2 อนุญาต tcp 80 และ 443 กลุ่มความปลอดภัยของ ECS อนุญาต 80 จากกลุ่มความปลอดภัยของ EC2

เมื่อฉันเข้าถึงโดเมนที่ลงทะเบียนใน Route53 จะได้รับ การค้นหา DNS 504 ล้มเหลว ข้อผิดพลาด. เมื่อเข้าถึงชื่อ DNS ของ ALB สาธารณะแล้ว บริการ 503 ไม่สามารถใช้งานได้ชั่วคราว ข้อผิดพลาด.

ฉันแน่ใจว่ามีการตั้งค่า ACM และชื่อ DNS สาธารณะของ LB กำลังลงทะเบียนกับ Route53 ด้วยโดเมน

การตั้งค่า ALB บนซับเน็ตสาธารณะดำเนินการโดย Terraform

ทรัพยากร "aws_lb_listener" "http" {
  load_balancer_arn = aws_lb.this.arn
  พอร์ต = "80"
  โปรโตคอล = "HTTP"

  default_action {
    พิมพ์ = "เปลี่ยนเส้นทาง"

    เปลี่ยนเส้นทาง {
      พอร์ต = "443"
      โปรโตคอล = "HTTPS"
      status_code = "HTTP_301"
    }
  }
}

ทรัพยากร "aws_lb_listener_rule" "http_redirect" {
  Listener_arn = aws_lb_listener.proxy.arn
  ลำดับความสำคัญ = 1

  หนังบู๊ {
    พิมพ์ = "เปลี่ยนเส้นทาง"

    เปลี่ยนเส้นทาง {
      พอร์ต = "443"
      โปรโตคอล = "HTTPS"
      status_code = "HTTP_301"
    }
  }

  เงื่อนไข {
    เส้นทาง_รูปแบบ {
      ค่า = ["/*"]
    }
  }
}

ทรัพยากร "aws_lb_listener_rule" "http_forward" {
  Listener_arn = aws_lb_listener.http.arn
  ลำดับความสำคัญ = 2

  หนังบู๊ {
    พิมพ์ = "ไปข้างหน้า"
    target_group_arn = aws_lb_target_group.proxy.arn
  }

  เงื่อนไข {
    host_header {
      ค่า = ["proxy.portsite.com"]
    }
  }
}

ทรัพยากร "aws_lb_listener_rule" "https_forward" {
  Listener_arn = aws_lb_listener.https.arn

  หนังบู๊ {
    พิมพ์ = "ไปข้างหน้า"
    target_group_arn = aws_lb_target_group.proxy.arn
  }

  เงื่อนไข {
    host_header {
      ค่า = ["proxy.portsite.com"]
    }
  }
}

เป็นทั้งสองอย่าง http_redirect และ http_forward จำเป็นต่อการกำหนดเส้นทางหรือไม่ หรือเท่านั้น http_redirect ดี? และปัญหาเกิดจากมันหรือไม่?

exeral avatar
lk flag
แหล่งข้อมูลสองรายการสุดท้าย: "aws_lb_listener_rule" "https_forward" ดูเหมือนเหมือนกัน (ยกเว้น prio)
Score:0
ธง lk

กฎการเปลี่ยนเส้นทางใช้เพื่อบังคับให้ http เป็น http.

ในการส่งทราฟฟิกไปยังแบ็กเอนด์ คุณต้องใช้ ซึ่งไปข้างหน้า หนังบู๊.

คุณสามารถตรวจสอบส่วนหัว HTTP "เซิร์ฟเวอร์" เพื่อดูว่าใครเป็นผู้ส่งข้อผิดพลาด 503 (ทั้ง ALB, nginx, ECS, ...)

กลุ่มความปลอดภัยของ ECS อนุญาต 80 จากกลุ่มความปลอดภัยของ EC2 : กลุ่มความปลอดภัย ECS ต้องอนุญาต ALB ส่วนตัว กลุ่มความปลอดภัย ALB ส่วนตัวต้องอนุญาตอินสแตนซ์ EC2

uotn avatar
sd flag
ขอบคุณสำหรับคำตอบ. ข้อผิดพลาด 503 มาจากชื่อ DNS ของ ALB สาธารณะ เช่น `proxy-1130301830.us-east-1.elb.amazonaws.com` ECS sg อนุญาต ALB ส่วนตัว และ ALB ส่วนตัว sg อนุญาต IP ของ EC2
uotn avatar
sd flag
ฉันพบว่ากลุ่มเป้าหมายเป็นโรค ฉันตั้งค่า IP ของ EC2 โดยตรง EC2 อยู่ในซับเน็ตส่วนตัว กลุ่มเป้าหมายอยู่ใน ALB ของซับเน็ตสาธารณะ แล้วสื่อสารกันไม่ได้? - https://imgur.com/a/7Crag5l - https://imgur.com/a/gf0hmzq

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา