Puncte:0

Cum să setați o rută publică LB către un proxy pe AWS?

drapel sd

Am construit această rută de trafic într-un VPC.

Route53->ACM(SSL)->ALB public->EC2 (proxy Nginx)->ALB privat->ECS (aplicație internă)

Grupul de securitate al EC2 permite tcp 80 și 443. Grupul de securitate al ECS permite 80 din grupul de securitate al EC2.

Când accesez domeniul înregistrat în Route53, a primit 504 Căutarea DNS a eșuat eroare. Când accesați numele DNS al ALB public primit 503 Serviciu Temporar Indisponibil eroare.

Sunt sigur că ACM se setează și numele DNS al LB-ului public se înregistrează pe Route53 cu domeniul.

Setările ALB de pe subrețeaua publică sunt realizate de Terraform

resursă „aws_lb_listener” „http” {
  load_balancer_arn = aws_lb.this.arn
  port = "80"
  protocol = "HTTP"

  acțiune_default {
    tip = "redirecționare"

    redirecționare {
      port = "443"
      protocol = "HTTPS"
      status_code = „HTTP_301”
    }
  }
}

resursă „aws_lb_listener_rule” „http_redirect” {
  listener_arn = aws_lb_listener.proxy.arn
  prioritate = 1

  acțiune {
    tip = „redirecționare”

    redirecționare {
      port = "443"
      protocol = "HTTPS"
      status_code = „HTTP_301”
    }
  }

  condiție {
    path_pattern {
      valori = ["/*"]
    }
  }
}

resursă „aws_lb_listener_rule” „http_forward” {
  listener_arn = aws_lb_listener.http.arn
  prioritate = 2

  acțiune {
    tip = "înainte"
    target_group_arn = aws_lb_target_group.proxy.arn
  }

  condiție {
    host_header {
      valori = ["proxy.portsite.com"]
    }
  }
}

resursă „aws_lb_listener_rule” „https_forward” {
  listener_arn = aws_lb_listener.https.arn

  acțiune {
    tip = "înainte"
    target_group_arn = aws_lb_target_group.proxy.arn
  }

  condiție {
    host_header {
      valori = ["proxy.portsite.com"]
    }
  }
}

Sunt ambele http_redirect și http_forward necesar pentru rutare? Sau numai http_redirect este bun? Și, problema cauzată de aceasta?

exeral avatar
drapel lk
ultimele două resurse: "aws_lb_listener_rule" "https_forward" pare la fel (cu excepția priorității)
Puncte:0
drapel lk

Regula de redirecționare este folosită pentru a forța http la httpS.

Pentru a trimite trafic către un backend, trebuie să utilizați redirecţiona acțiune.

Puteți verifica antetul HTTP „Server” pentru a ști cine trimite eroarea 503 (fie ALB, nginx, ECS, ...)

Grupul de securitate al ECS permite 80 din grupul de securitate al EC2. : Grupul de securitate ECS trebuie să permită ALB privat. grupul de securitate ALB privat trebuie să permită instanța EC2

uotn avatar
drapel sd
Multumesc pentru raspuns. Eroarea 503 a venit de la numele DNS al ALB-ului public. Ca `proxy-1130301830.us-east-1.elb.amazonaws.com`. ECS sg permite ALB privat, iar ALB sg privat permite IP-ul EC2.
uotn avatar
drapel sd
Am descoperit că grupul țintă este nesănătos. Am setat direct IP-ul lui EC2. EC2 este în subrețeaua privată, grupul țintă este în ALB al subrețelei publice. Deci nu pot comunica? - https://imgur.com/a/7Crag5l - https://imgur.com/a/gf0hmzq

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.