【问题标题】:Has anyone managed to get SPDY to work behind an Amazon ELB?有没有人设法让 SPDY 在 Amazon ELB 后面工作?
【发布时间】:2013-11-27 19:39:26
【问题描述】:

一段时间以来,我们一直在使用使用 spdy 模块编译的 nginx,尽管只是规范的草案 2,但对其性能非常满意。

但是,我们现在需要水平扩展并将我们的 EC2 实例置于弹性负载均衡器之后。

由于 ELB 不支持 NPN 协议,我们将侦听器设置为以下内容:

SSL 443 -> SSL 443

我们还启用了新的代理协议,如下所述:

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/enable-proxy-protocol.html

使用此配置一切正常。我们的应用已成功在我们的实例之间实现负载均衡。

但是,当运行http://spdycheck.org/ 时,它会报告 SPDY 未启用。然而,如果我将 spdycheck 指向单个实例的弹性 IP,它会正确报告 SPDY 已启用。

任何帮助将不胜感激。

【问题讨论】:

    标签: amazon-web-services nginx load-balancing spdy


    【解决方案1】:

    我们昨晚刚刚在https://www.ritani.com 发布了它。 你需要一个支持 spdy 和 proxy_protocol 的 nginx 版本。我们在 1.6.2。

    通过 AWS CLI 添加 proxy_protocol 并将其附加到您的 ELB。 http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/enable-proxy-protocol.html#enable-proxy-protocol-cli

    通过该 ELB 的 AWS Web UI,删除所有 443 个侦听器。添加一个新的侦听器作为 TCP 443 -> TCP 443。

    在您的 nginx 配置服务器块中:

    listen 443 ssl spdy proxy_protocol;

    add_header Alternate-Protocol 443:npn-spdy/3;

    all the standard ssl directives...

    要让 ocsp 装订工作,我必须使用三个证书。连接 my.crt 和 my.intermediate.crt 的标准方法不起作用。我必须将它们分解如下。

    ssl_certificate /etc/nginx/ssl/my.crt;

    ssl_certificate_key /etc/nginx/ssl/my.private.key;

    ssl_trusted_certificate /etc/nginx/ssl/my.intermediate.crt;

    最后,将$remote_addr 的所有实例与$proxy_protocol_addr 交换。 $remote_addr 现在是 elb,$proxy_protocol_addr 是远程客户端的 ip。

    【讨论】:

    • Sapel,你现在有 ELB -> NGINX -> 支持 SLL 和 SPDY 的应用程序?如果是这样,您能否指定 SSL 的终止位置?
    • SSL 在 NGINX 中终止。不再在负载平衡器中。
    • 我们不能直接在应用服务器上终止吗?那么它将是 ELB -> App1 或 ELB -> App2 。你在应用服务器上运行 nginx 吗?
    • 如果您的应用服务器支持 spdy 和 proxy_protocol,我想您可以。我们在它们前面运行 nginx 并 proxy_pass 特定路径到应用服务器。
    【解决方案2】:

    执行 SSL -> SSL 不会将整个 TCP 数据包发送到您的网络服务器。 AWS 使用证书解密数据包并重新加密。您的后端只接收修改后的数据包。 可行的选择是将协议更改为 TCP,但您将需要 nginx proxy patch 用于 http 标头或更好地工作。

    我也遇到了同样的问题,正在等待 AWS 在 ELB 上启用 NPN 协商或 nginx 将接受代理补丁添加到其模块中。

    【讨论】:

    • 我也有同样的问题,有没有更新?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    相关资源
    最近更新 更多