具有后端和前端支持的基于Http / 2的负载均衡器

时间:2018-10-08 10:49:07

标签: amazon-web-services load-balancing http2 aws-alb

我们作为企业公司希望迁移到http / 2。以下是我们的基础架构。

infrastructure 当前,我们将AWS ALB用作运行Apache Web Server的EC2实例支持的负载平衡器。 Apache Web服务器是http服务器,然后通过mod_jk连接器连接到tomcat servlet容器。该Webapp位于Tomcat中。

我们已在apache Web服务器上启用了http / 2,但问题是AWS ALB仅与前端而不是与后端通信http / 2。我已经阅读了一些解决方案来解决此问题,方法是使AWS ALB作为第4层负载均衡器(TCP模式或TCP直通模式)运行,下面是link这样的内容。这样做可能会有几个问题,因为从客户端以http / 2格式传递的信息在负载均衡器上转换为TCP时会丢失,例如标识客户端的x-forward-for标头。另外,我猜(和某些博客所言)的会话粘性也将一掷千金,因为这也是仅第7层支持的一项功能。

问题是如何在前端和后端同时支持AWS ALB中的http / 2而不损害会话粘性和客户端标识之类的功能。 / p>

仅在前端启用http / 2并在AWS ALB和后端实例(Apache Web Server)之间使用http / 1.1是否可以。我对这个问题的看法是,如果我们在前端启用了http / 2,浏览器和ALB之间的一个TCP连接上的请求就会多路复用,但是负载平衡器和apache Web服务器之间的每个请求都会有一个TCP连接。因此不会真正成为请求多路复用。如果我的理解错了,请纠正我。

如基础架构图中所示,我们还将AWS Cloudfront用作CDN。 Cloudfront也存在类似的问题。 AWS Cloudfront与客户端通信http / 2,但与后端通信http / 1.1(此处后端指的是AWS ALB)。 AWS Cloudfront上服务器推送的状态是什么?他们的文档中没有明确提及。服务器推送将是我们要利用的功能之一。

0 个答案:

没有答案