Amazon web services AWS弹性负载平衡器(ELB)v2是否支持下一个协议协商(NPN)

Amazon web services AWS弹性负载平衡器(ELB)v2是否支持下一个协议协商(NPN),amazon-web-services,nginx,http2,elastic-load-balancer,npn,Amazon Web Services,Nginx,Http2,Elastic Load Balancer,Npn,我想使用AWS弹性负载平衡器(ELB)v2应用程序负载平衡器和HTTP 2.0。我试图找出它是否支持下一个协议协商(NPN),在官方规范中被ALPN取代 我需要NPN,因为我有一些旧的Android客户端需要它使用HTTP 2.0。NGINX能够在没有SPDY的情况下打开NPN(我不需要SPDY,只需要NPN)。由于ELB是基于NGINX的,所以我认为它可能会被启用 查看ELB文档,我看不到ALPN或NPN的提及。使用curl连接到应用程序负载平衡器实例表明它同时支持NPN和ALPN 没有选择:

我想使用AWS弹性负载平衡器(ELB)v2应用程序负载平衡器和HTTP 2.0。我试图找出它是否支持下一个协议协商(NPN),在官方规范中被ALPN取代

我需要NPN,因为我有一些旧的Android客户端需要它使用HTTP 2.0。NGINX能够在没有SPDY的情况下打开NPN(我不需要SPDY,只需要NPN)。由于ELB是基于NGINX的,所以我认为它可能会被启用


查看ELB文档,我看不到ALPN或NPN的提及。

使用curl连接到应用程序负载平衡器实例表明它同时支持NPN和ALPN

没有选择:

$ curl --verbose -I --http2 https://example.com 2>&1 | grep ALPN
* ALPN, offering h2
* ALPN, offering http/1.1
* ALPN, server accepted to use h2
告诉curl明确不使用ALPN:

$ curl --no-alpn --verbose -I --http2 https://example.com 2>&1 | grep NPN
* NPN, negotiated HTTP2 (h2)
在这两种情况下,都使用HTTP/2提供请求

我针对一个应用程序负载平衡器进行了测试,该应用程序负载平衡器针对的是一个在端口80上运行nginx的新EC2实例(也就是说,它对后端支持的内容没有影响)