AWS 应用程序负载均衡器真的支持压缩吗?

Does AWS Application load balancer actually support compression?

我的前端代码直接与后端的应用程序负载均衡器对话(使用 JSON 通过 HTTPS)。

我开始检索比微不足道的数据更多的数据 - 所以我想我应该弄清楚我必须进行哪些更改以支持压缩 HTTP 数据。

我看到一些帖子指出 AWS 负载均衡器压缩已损坏。

示例:https://medium.com/@sanjay.rajak/why-i-replaced-aws-elastic-load-balancer-to-haproxy-load-balancer-72207fad2d96

但据我所知 AWS documentation - ELB / ALB 等实际上根本不支持压缩。

作为变通方法,如果我愿意,我可以通过 Cloudfront 或 API-gateway 引导我的后端调用来进行压缩 - 这甚至可能是 "right" 的方式,因为这些服务还可以做一些请求缓存等。

但在我开始使用这些其他服务之前 - AWS 负载均衡器真的不支持压缩吗?

您可以使用第 4 层经典 (ELB) 或网络负载均衡器。由于第 4 层负载均衡器正在对 TCP 流量进行负载均衡,因此 ELB 不会触及您的 HTTP headers 或响应。

Network Load Balancer FAQ

我刚刚使用 Application Load Balancer 后面的应用程序 运行 对此进行了测试。在服务器上启用 gzip 压缩后,浏览器接收 gzip 压缩的资源。 ALB 正确传递 content-encoding: gzip HTTP header。请注意,使用 ALB,您还可以获得 HTTP/2 支持,这进一步减少了浏览器加载您网站文件所需的时间。

我认为您链接的文章不正确或已过时,或者这可能是经典 ELB 特有的问题。