AWS ELB / ALB теперь поддерживает HTTP / 2.
Согласно документации (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html):
Application Load Balancers provide native support for HTTP/2 with HTTPS listeners. You can send up to 128 requests in parallel using one HTTP/2 connection. The load balancer converts these to individual HTTP/1.1 requests and distributes them across the healthy targets in the target group.
Моя цель - экземпляр EC2, на котором запущен Apache с поддержкой HTTP / 2. Возможно ли, чтобы ALB подключался к цели (экземпляр EC2) через HTTP / 2 и избегал подключения ALB <--> ec2 через HTTP / 1.1?
Я не видел способа сделать это в консоли или документации.
Нет, это невозможно.
ALB всегда преобразует запросы в HTTP / 1.1, и этот параметр не настраивается.
Я надеюсь, что это скоро изменится, поскольку HTTP / 2 получает все большее распространение и становится более распространенным, ALB позволит использовать HTTP / 2 во всем соединении.
Преимущество этого дизайна заключается в том, что параллельные запросы от одного средства просмотра могут быть распределены между внутренними экземплярами. Вы можете запустить настройку с помощью Network Load Balancer (NLB), если действительно хотите запустить свой собственный http / 2, но затем потеряете доступ к сертификатам Amazon Certificate Manager, которые нельзя использовать с NLB, и на самом деле ваши экземпляры будут должны выполнять всю обработку TLS самостоятельно, потому что NLB не выполняет разгрузку TLS.
Это все еще актуально? Я включил http2 в ALB, но когда я это делаю, но когда я использую curl -i domain или curl -i домен --http2, он дает мне http1.1. это ожидаемое поведение?
Похоже, теперь это возможно. См. docs.aws.amazon.com/elasticloadbalancing/latest/application/…
Я почти уверен, что вы можете подключить ALB к группам экземпляров. Вы настраиваете группы на последнем этапе создания ALB.