Поддерживает ли AWS Elastic Load Balancer (ELB) v2 следующее согласование протокола (NPN)
Я хотел бы использовать AWS Elastic Load Balancer (ELB) v2 Application Load Balancer с HTTP 2.0. Я пытаюсь выяснить, поддерживает ли он переговоры по следующему протоколу (NPN), который был заменен на ALPN в официальных спецификациях.
Мне нужен NPN, потому что у меня есть несколько старых Android-клиентов, которым требуется HTTP 2.0. NGINX имеет возможность включать NPN без SPDY (мне не нужен SPDY, просто NPN). Поскольку ELB основан на NGINX, я подумал, что он может быть включен.
Просматривая документы ELB, я не вижу упоминаний об ALPN или NPN.
1 ответ
Использование 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.
Я тестировал балансировщик нагрузки приложения, предназначенный для нового экземпляра EC2, на котором запущен nginx на порту 80 (т. Е. Не имеет значения то, что поддерживает бэкэнд).