我有一个 api,它会在 https 中收到很多请求。由于它很安静,每次发送 api 时,都需要一个完整的 ssl 握手。启用 http-keepalive 后,请求的延迟大大降低(第一次请求花费相同的时间,但后续请求与 http 一样快)。
现在,我正在试验亚马逊的 elb(我也将使用 cloud front)。我的问题是,如何在相同的设置中保持活动状态,来自客户端的请求可以随机路由到不同的机器?
还是根本不可能在每次发出请求时阻止 ssl 握手?
我有一个 api,它会在 https 中收到很多请求。由于它很安静,每次发送 api 时,都需要一个完整的 ssl 握手。启用 http-keepalive 后,请求的延迟大大降低(第一次请求花费相同的时间,但后续请求与 http 一样快)。
现在,我正在试验亚马逊的 elb(我也将使用 cloud front)。我的问题是,如何在相同的设置中保持活动状态,来自客户端的请求可以随机路由到不同的机器?
还是根本不可能在每次发出请求时阻止 ssl 握手?
是的,AWS ELB 将尽可能重新使用与后端的开放连接,同时仍会尝试按照配置分配负载。AWS 甚至在他们的文档中建议将此作为最佳实践:
ETA:请注意,ELB 实际上并没有将客户端连接交给后端。客户端和后端之间的所有请求仍然通过 ELB 双向传递。您可以让 ELB 从客户端终止 SSL(假设是 HTTPS),然后创建或重新使用其自己的 HTTPS 连接(如果配置为这样做)到后端,或者您可以选择仅在后端终止 SSL。