一段时间以来,我们一直在使用使用 spdy 模块编译的 nginx,尽管只是规范的草案 2,但对其性能非常满意。
然而,我们现在需要水平扩展并将我们的 EC2 实例置于弹性负载均衡器之后。
由于 ELB 不支持 NPN 协议(protocol),我们将监听器设置为以下内容:
SSL 443 -> SSL 443
我们还启用了新的代理协议(protocol),如下所述:
http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/enable-proxy-protocol.html
使用此配置一切正常。我们的应用程序在我们的实例之间成功地进行了负载平衡。
但是在运行 http://spdycheck.org/ 时它报告 SPDY 未启用。然而,如果我将 spdycheck 指向单个实例的弹性 IP,它会正确报告 SPDY 已启用。
任何帮助将不胜感激。
最佳答案
执行 SSL -> SSL 不会将整个 TCP 数据包发送到您的网络服务器。
AWS 使用证书解密数据包并重新加密。您的后端只接收修改后的数据包。
可行的选择是将协议(protocol)更改为 TCP,但您需要 nginx proxy patch用于 http header 或更好地工作。
我也遇到了同样的问题,正在等待 AWS 在 ELB 上启用 NPN 协商或 nginx 将 accept-proxy 补丁添加到其模块中。
关于amazon-web-services - 有没有人设法让 SPDY 在 Amazon ELB 后面工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19983678/