AWS 应用程序负载均衡器真的支持压缩吗?
Does AWS Application load balancer actually support compression?
我的前端代码直接与后端的应用程序负载均衡器对话(使用 JSON 通过 HTTPS)。
我开始检索比微不足道的数据更多的数据 - 所以我想我应该弄清楚我必须进行哪些更改以支持压缩 HTTP 数据。
我看到一些帖子指出 AWS 负载均衡器压缩已损坏。
但据我所知 AWS documentation - ELB / ALB 等实际上根本不支持压缩。
作为变通方法,如果我愿意,我可以通过 Cloudfront 或 API-gateway 引导我的后端调用来进行压缩 - 这甚至可能是 "right" 的方式,因为这些服务还可以做一些请求缓存等。
但在我开始使用这些其他服务之前 - AWS 负载均衡器真的不支持压缩吗?
您可以使用第 4 层经典 (ELB) 或网络负载均衡器。由于第 4 层负载均衡器正在对 TCP 流量进行负载均衡,因此 ELB 不会触及您的 HTTP headers 或响应。
我刚刚使用 Application Load Balancer 后面的应用程序 运行 对此进行了测试。在服务器上启用 gzip 压缩后,浏览器接收 gzip 压缩的资源。 ALB 正确传递 content-encoding: gzip
HTTP header。请注意,使用 ALB,您还可以获得 HTTP/2 支持,这进一步减少了浏览器加载您网站文件所需的时间。
我认为您链接的文章不正确或已过时,或者这可能是经典 ELB 特有的问题。
我的前端代码直接与后端的应用程序负载均衡器对话(使用 JSON 通过 HTTPS)。
我开始检索比微不足道的数据更多的数据 - 所以我想我应该弄清楚我必须进行哪些更改以支持压缩 HTTP 数据。
我看到一些帖子指出 AWS 负载均衡器压缩已损坏。
但据我所知 AWS documentation - ELB / ALB 等实际上根本不支持压缩。
作为变通方法,如果我愿意,我可以通过 Cloudfront 或 API-gateway 引导我的后端调用来进行压缩 - 这甚至可能是 "right" 的方式,因为这些服务还可以做一些请求缓存等。
但在我开始使用这些其他服务之前 - AWS 负载均衡器真的不支持压缩吗?
您可以使用第 4 层经典 (ELB) 或网络负载均衡器。由于第 4 层负载均衡器正在对 TCP 流量进行负载均衡,因此 ELB 不会触及您的 HTTP headers 或响应。
我刚刚使用 Application Load Balancer 后面的应用程序 运行 对此进行了测试。在服务器上启用 gzip 压缩后,浏览器接收 gzip 压缩的资源。 ALB 正确传递 content-encoding: gzip
HTTP header。请注意,使用 ALB,您还可以获得 HTTP/2 支持,这进一步减少了浏览器加载您网站文件所需的时间。
我认为您链接的文章不正确或已过时,或者这可能是经典 ELB 特有的问题。