问题描述: 在使用AWS ECS (Elastic Container Service) 部署的应用中,当使用ALB (Application Load Balancer) 作为负载均衡器时,应用无法接收到请求中的“Authorization”头部信息。
解决方法: 这个问题通常是由于ALB默认不传递“Authorization”头部信息导致的。为了解决这个问题,需要在ALB的目标组中添加一个规则,将“Authorization”头部信息传递给后端的ECS服务。
下面是一个使用AWS CLI的例子,展示如何为目标组添加此规则:
aws elbv2 modify-target-group-attributes \
--target-group-arn \
--attributes Key=stickiness.enabled,Value=true Key=stickiness.type,Value=lb_cookie Key=deregistration_delay.timeout_seconds,Value=60 Key=stickiness.lb_cookie.duration_seconds,Value=86400 Key=access_logs.s3.enabled,Value=true Key=access_logs.s3.bucket,Value= Key=access_logs.s3.prefix,Value= Key=forward.headers[0],Value=X-Forwarded-For Key=forward.headers[1],Value=Authorization
在上述命令中,你需要将
替换为你的目标组的ARN (Amazon Resource Name)。此命令将添加一个名为“forward.headers”的属性,它包括“X-Forwarded-For”和“Authorization”头部信息。
完成上述操作后,ALB将会传递“Authorization”头部信息给ECS服务。在应用中,你可以读取该头部信息并进行相应的处理。
请确保你的AWS CLI已正确配置,并且你具有足够的权限执行上述命令。
希望这个解决方法能帮助到你解决问题。如果你遇到其他问题,请随时提问。