AWS 应用负载均衡器是否真正支持压缩?

14

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

我开始检索了大量数据,因此我认为我应该找出我需要做哪些更改来支持压缩HTTP数据。

我看到了一些帖子说AWS负载均衡器的压缩功能是有问题的。

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

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

作为解决方法,如果需要压缩,我可以将后端调用定向通过Cloudfront或API网关 - 也许这甚至是“正确”的方法,因为这些服务还可以对请求进行一些缓存等操作。

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


1
他们没有实现压缩,但这引发了一个问题,即他们是否以一种意外/未记录的方式修改标头,或者该帖子的作者是否忽略了某些东西。 - Michael - sqlbot
2个回答

16
我刚刚在应用程序负载均衡器后面运行的一个应用程序上测试了这一点。启用服务器上的gzip压缩后,浏览器接收到gzipped资源。ALB正确传递content-encoding: gzip HTTP标题。请注意,使用ALB还可以获得HTTP/2支持,从而进一步减少浏览器加载网站文件所需的时间。
我认为你提供的链接文章可能是不正确的、过时的,或者可能是特定于旧版ELB的问题。

请问您能否分享一下您用于此设置的确切步骤?在我的情况下,我也无法在ALB中获得gzip压缩。我正在使用NodeJS前端和Java后端。 - Neron Joseph
1
@NeronJoseph 这取决于您后端服务器的配置,ALB 只是将其传递。如果您尝试直接访问 EC2 服务器,是否会收到压缩响应? - Mark B

4
您可以使用第四层经典型(ELB)或网络负载均衡器。由于第四层负载均衡器负载均衡TCP流量,所以ELB不会触及您的HTTP头或响应。 网络负载均衡器FAQ

哦 - 哇,你说得对。我想因为我从CloudFront开始,所以我只是假设ALB会为我进行压缩。你说得对,使用EC2服务器进行压缩,ALB可以很好地传递压缩内容。 - Shorn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接