рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдиреЗ рдИрдПрд▓рдмреА рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛, рдЬреЛ рдПрдЪрдЯреАрдЯреАрдкреА рд╕реЗ рдПрдЪрдЯреАрдЯреАрдкреАрдПрд╕ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдЙрдЯ-рдСрдл-рдж-рдмреЙрдХреНрд╕ рдЕрдиреБрднрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ, рдмрд┐рдирд╛ рдИрд╕реА 2 рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ HTTP рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рдеред
рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝ рд╕рдХреЗрдВред
resource "aws_lb_listener_rule" "static" {
listener_arn = "${aws_lb_listener.front_end.arn}"
priority = 100
action {
type = "redirect" # "fixed-response"
# the rest has to be concepted
}
}
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдШреЛрд╖рдгрд╛: https://aws.amazon.com/about-aws/whats-new/2018/07/elastic-load-balancing-announces-support-for-redirects-and-fixed-responses-for-application-load -рдмреИрд▓реЗрдВрд╕рд░/
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг:
рдореБрдЭреЗ рдЗрд╕ рдлреАрдЪрд░ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред
aws_lb_listener
рд╕рдВрд╕рд╛рдзрди рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдЧрд╛ред
рд╕рдВрднрд╛рд╡рд┐рдд рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ:
resource "aws_lb_listener" "web_port80" {
load_balancer_arn = "${aws_lb.web_alb.arn}"
port = 80
protocol = "HTTP"
default_action {
type = "redirect"
host = "#{host}"
path = "/#{path}"
port = "#{port}"
protocol = "#{protocol}"
query = "#{query}"
status_code = "301"
}
}
resource "aws_lb_listener" "web_port80" {
load_balancer_arn = "${aws_lb.web_alb.arn}"
port = 80
protocol = "HTTP"
default_action {
type = "fixed-response"
content_type = "text/plain"
message_body = "Hello"
status_code = "200"
}
}
aws_lb_listener_rule
рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдорд╛рди рд╣реЛрдЧрд╛ред
рд╕рд╛рд╡рдзрд╛рдиреА: рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рдмрд╛рд╣рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдкреНрд░рджрд╛рддрд╛ рдирд╡реАрдирддрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рдПрдЧрд╛ (рдЗрд╕ рд▓реЗрдЦрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 1.29.0): #5357
рдореИрдВ рд╕рднреА рдПрдПрд▓рдмреА/рдПрдирдПрд▓рдмреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреНрд░реИрд╢ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЬ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░реВрдВрдЧрд╛ рдФрд░ рд╣рдореЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╢рд╛рдпрдж рдЙрди рд╕реБрдзрд╛рд░реЛрдВ рдкрд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
рдХреНрд░реИрд╢ рд░реЛрдХрдерд╛рдо рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛: #5367
рдХреНрд░реИрд╢ рдлрд╝рд┐рдХреНрд╕ рдХреЛ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 3 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпрд╛рдВ рд╣реИрдВ: "рдлрд┐рдХреНрд╕реНрдб-рд░рд┐рд╕реНрдкреЙрдиреНрд╕", "рдлреЙрд░рд╡рд░реНрдб" рдФрд░ "рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ", рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реЗрдЯ рдХреЗ рд╕рд╛рдеред
рдХреНрдпрд╛ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЪрдпрдирд┐рдд рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдХреНрд░рд┐рдпрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рд╕рдорддрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдП?
рдЙрджрд╛рд╣рд░рдг:
resource "aws_lb_listener_rule" "static" {
action {
type = "forward"
forward {
target_group_arn = "..."
}
}
}
resource "aws_lb_listener_rule" "static" {
action {
type = "fixed-response"
fixed_response {
content_type = "text/plain"
message_body = "Hello"
status_code = "200"
}
}
}
resource "aws_lb_listener_rule" "static" {
action {
type = "redirect"
redirect {
host = "#{host}"
path = "/#{path}"
port = "#{port}"
protocol = "#{protocol}"
query = "#{query}"
status_code = "HTTP_301"
}
}
}
рдПрдХреНрд╢рди рдбреЗрдЯрд╛рдЯрд╛рдЗрдк рдЕрдм рдиреЗрд╕реНрдЯреЗрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХреНрд╢рди рдЯрд╛рдЗрдк-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рдореВрд╣рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд░рдирд╛ (рд▓рдЧрднрдЧ) 1:1 рдореИрдкрд┐рдВрдЧ рд╣реЛрдЧрд╛: https://docs.aws.amazon.com/elasticloadbalancing/latest/APIreference/API_Action .html
рд╕рд╛рде рд╣реА, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП status_code
рдХреЗ рдкрд╣рд▓реЗ HTTP_
рд╣реИ рдЬрдмрдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдпрд╣ рдирд╣реАрдВ рд╣реИ:
рдпрджрд┐ рдпрд╣ status_code
рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛, рддреЛ рд╣рдореЗрдВ рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдкреНрд░рджрд╛рддрд╛ рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдореВрд▓реНрдп рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╣рдо рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрд╕рдбреАрдХреЗ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрд▓рдЧ рдмреНрд▓реЙрдХ рдЙрдкрдпреБрдХреНрдд рд╣реЛрдВрдЧреЗред рдпрд╣ рд╣рдореЗрдВ рддрд░реНрдХ рд╕рддреНрдпрд╛рдкрди рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХреЛрдб рдХреЛ рд╕рд░рд▓ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЪреВрдВрдХрд┐ рдЗрд╕рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ fixed-response
рд╢рд╛рдорд┐рд▓ рд╣реИ, рдХреНрдпрд╛ рд╣рдо рд╢реАрд░реНрд╖рдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рдЗрд╕рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдкреА рдереА рдФрд░ рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕рд╛ рд▓рдЧрд╛ рдФрд░ рджреЗрдЦрд╛ рдХрд┐ рдЗрд╕ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛ред рдзрдиреНрдпрд╡рд╛рджред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореБрдЭреЗ рдКрдкрд░ рджрд┐рдП рдЧрдП рдПрдкреАрдЖрдИ рд▓рд┐рдВрдХ рдореЗрдВ рд╣реЗрдбрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ HSTS
рд╣реЗрдбрд░ рдЬреИрд╕рд╛ рдХреБрдЫ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реВрдВрдЧрд╛ - рдХреНрдпреЛрдВрдХрд┐ рдлреЙрд░рд╡рд░реНрдб рдореЛрдб рдореЗрдВ рдПрдПрд▓рдмреА рдЙрд╕реЗ рдмреИрдХрд┐рдВрдЧ рдкрд░ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдЕрдиреБрдкреНрд░рдпреЛрдЧред
рдХреНрдпрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рднреА рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ?
рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП @sklemmer рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз #4707 рдФрд░ #4711 рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХрд┐рд╕реА рд╕рдордп fixed-response
/ redirect
(#5430) рдХреЗ рд▓рд┐рдП рдЦреБрд▓реЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
fixed-response
рдФрд░ redirect
рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди #5430 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 1.33.0 рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ
рдпрд╣ AWS рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 1.33.0 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдкреНрд░рджрд╛рддрд╛ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдЯреЗрд░рд╛рдлрд╝реЙрд░реНрдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВ рдпрд╛ рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рд╕реА рд╕рд╣рд╛рдпрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рддреЛ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВред
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ _30 рджрд┐рдиреЛрдВ_ рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╣рдорд╛рд░реЗ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЛ рд╕рдХреНрд░рд┐рдп рдореБрджреНрджреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдЙрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдзрдиреНрдпрд╡рд╛рдж!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
fixed-response
рдФрд░redirect
рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди #5430 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 1.33.0 рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ