AWS Application Load Balancer将所有标头转换为小写

时间:2016-10-05 10:14:32

标签: amazon-web-services amazon-ec2 http-headers amazon-elb

我是在两个EC2实例中运行的REST API应用程序,并且长时间使用AWS Classic Load Balancer。 REST API的客户端依赖于响应头(例如Location)。

我知道HTTP标头根据定义不区分大小写,但是(不幸的是)一些客户端忽略了这一点并以区分大小写的方式检查标头(例如,他们希望Location以大写字母开头)。

最近我已更改为AWS Application Load Balancer,现在我发现它将所有响应标头转换为小写,因此客户端无法正确处理响应。

我在这里提出了几个问题。

  1. 是否是Application Load Balancer的预期行为?
  2. 有没有办法将它配置为返回标题,因为它们是由应用程序构建的?

2 个答案:

答案 0 :(得分:11)

这是ALB的预期功能,因为HTTP/2 lowercases all headers和ALB support HTTP/2。遗憾的是,您无法修改ALB操纵标头的方式。

更新:请参阅以下评论。我声明ALB由于支持HTTP / 2而降低了请求标头可能不准确。

答案 1 :(得分:2)

当我们从TCP ELB切换到HTTPS ELB时,这导致损坏的客户端失败。

在修复客户端的同时,我们暂时禁用了默认启用的新ELB HTTP / 2支持。

Disable HTTP/2 in the load balancer attributes