Я настроил два балансировщика нагрузки на AWS: 1) Балансировщик нагрузки приложения с одной целевой группой на HTTPS и сертификат SSL, которые указывают на приложение nodejs на порту 5000 2) Балансировщик сетевой нагрузки с прослушивателями TCP на 80 и 443, указывающие на nginx (openresty + lua для динамических c генерация сертификатов) запрос маршрутизации на nodejs приложение на порт 5000
И ELB, указывающий на один и тот же кластер, и на одну и ту же службу:
"loadBalancers": [
{
"containerName": "uppo-kb",
"targetGroupArn": "arn:aws:elasticloadbalancing:eu-central-1:496080483451:targetgroup/ecs-Uppo-uppo-kb/6965729827dccb83",
"containerPort": 5000
},
{
"containerName": "uppo-nginx",
"targetGroupArn": "arn:aws:elasticloadbalancing:eu-central-1:496080483451:targetgroup/nginx-80/1797fbb0e9dbc8db",
"containerPort": 80
},
{
"containerName": "uppo-nginx",
"targetGroupArn": "arn:aws:elasticloadbalancing:eu-central-1:496080483451:targetgroup/nginx-443/af722a3b9bf728a3",
"containerPort": 443
}
]
Сетевой режим - это мост, и экземпляры правильно подключены к каждой целевой группе, указанной выше, с динамическим сопоставлением портов c. ALB работает правильно, но NLB не разрешает проверки здоровья через TCP или HTTPS с путем, и curl зависает на
* Trying 3.126.131.185...
* TCP_NODELAY set
Nginx настроен правильно, локально выполняет контейнеры или получает доступ через s sh к хосту ec2 работать как положено и nginx ответить 200 OK. Может быть, этот режим моста не поддерживается в NLB, или просто NLB не начинает маршрутизировать трафик c в эти незараженные экземпляры?