Назад | Перейти на главную страницу

Прослушиватель TCP балансировщика сетевой нагрузки AWS на порту 80 неправильно пересылает запросы HTTP / 2

У меня есть сервер GRPC, прослушивающий порт 8000 на экземпляре ec2. Если я поставлю перед ним балансировщик сетевой нагрузки с прослушивателем TCP на порт 80, предисловие HTTP / 2-соединения PRI * HTTP/2.0 не пересылается на мой сервер GRPC (другие пакеты, связанные с запросом HTTP / 2, похоже, поступают правильно).

Если я использую прослушиватель TCP на любом порту, кроме 80, все работает, как ожидалось - предисловие к соединению отправляется правильно, и мои запросы успешны.

Я заметил, что даже если я удалю прослушиватель TCP для порта 80, балансировщик нагрузки все равно будет принимать соединения на 80-м порту.

Насколько я понимаю, балансировщик сетевой нагрузки просто пересылает трафик - есть ли что-то особенное в порту 80?

Редактировать:

Я создал балансировщик сетевой нагрузки без слушателей в качестве тестового примера, чтобы показать, что порт 80 открыт и принимает какие-то соединения даже без подключения слушателя:

$ aws elbv2 create-load-balancer --name somename --type network --subnets subnet-a1b2c3d4
$ aws elbv2 describe-listeners --load-balancer-arn arn:aws:elasticloadbalancing:somearn
{
    "Listeners": []
}
$ nmap somename-a1b2c3d4.elb.us-region-x.amazonaws.com

Starting Nmap 7.01 ( https://nmap.org ) at 2018-07-23 08:34 EDT
Nmap scan report for somename-a1b2c3d4.elb.us-region-x.amazonaws.com (123.255.255.255)
Host is up (0.019s latency).
rDNS record for 123.255.255.255: somename-a1b2c3d4.elb.us-region-x.amazonaws.com
Not shown: 986 filtered ports
PORT     STATE  SERVICE
80/tcp   open   http
443/tcp  open   https
1720/tcp open   h323q931
6000/tcp closed X11
6001/tcp closed X11:1
6002/tcp closed X11:2
6003/tcp closed X11:3
6004/tcp closed X11:4
6005/tcp closed X11:5
6006/tcp closed X11:6
6007/tcp closed X11:7
6009/tcp closed X11:9
6025/tcp closed x11
6059/tcp closed X11:59

Nmap done: 1 IP address (1 host up) scanned in 12.01 seconds