Как использовать HTTP2 за AWS Network Load Balancer, завершающим SSL - PullRequest
0 голосов
/ 27 марта 2019

У меня есть следующие настройки:

client --> AWS NLB (terminates SSL) --> nginx --> webserver

Как мне заставить nginx обслуживать контент через HTTP2? Включение этого параметра в конфигурации сервера nginx приводит к тому, что браузер загружает файл при доступе к странице.

Ответы [ 2 ]

1 голос
/ 27 марта 2019

Браузеры используют ALPN как часть согласования TLS, чтобы решить подать в суд на протокол HTTP / 2.

Поскольку ваше завершение TLS происходит на NLB, оно должно объявить эту поддержку HTTP / 2 и передачу нанезашифрованные данные HTTP / 2 для Nginx.

Я не вижу ничего, чтобы предположить, что NLB поддерживает настройку ALPN, поэтому не уверен, что это возможно.Вам нужно будет спросить AWS, поддерживается ли это как ничего в их документации к нему, но это само по себе, вероятно, дает вам ответ, который вам не нужен.

Не уверен, почему он загружает файл.Происходит ли то же самое, если вы подключаетесь напрямую к Nginx?

0 голосов
/ 09 апреля 2019

Решение, к которому я в конечном итоге пришел, заключалось в следующем:

client --> AWS NLB --> AWS ALB (terminates SSL) --> nginx --> webserver

Хитрость заключалась в том, чтобы использовать TCP на порту 443 на NLB во время создания ! Веб-интерфейс не не позволяет вам добавить прослушиватель TCP на 443 после этого - для этого необходимо использовать выбор TLS на 443 и выбрать сертификат для завершения TLS. Единственная причина, по которой я использую NLB, заключается в том, что он поддерживает статическую ассоциацию IP. TCP passthrough to ALB работает для моего варианта использования.

Так как ALB завершает TLS и также поддерживает HTTP / 2, эта установка работает.

...