У меня есть ALB, который сидит перед NGINX. nginx conf имеет 9 различных серверных настроек, каждый из которых прослушивает разные порты. Я использую Fargate для развертывания моего кластера с использованием службы обнаружения.
Теперь, чтобы направить мой трафик c через ALB -> Nginx -> Django-uwsgi APP
, я добавил 9 различных целевых групп и 9 портов слушателя в ALB, причем каждый порт слушателя был связан с одной из целевой группы.
Обратите внимание, что мой ALB не связывается напрямую с приложением, он маршрутизирует через Nginx. Следовательно, я не объявлял никакой балансировщик нагрузки при настройке моей службы Fargate APP . Балансировщик нагрузки объявляется только при настройке NGINX службы fargate.
Теперь при настройке балансировщика нагрузки для службы Nginx fargate я могу добавить только до 5 целевых групп. Это означает, что мой nginx conf сможет обслуживать только 5 серверов conf, целевая группа которых была настроена при настройке службы.
Как настроить остальную часть службы через тот же nginx config?
У меня есть несколько решений: -
1) Я развертываю 2 nginx сервисов, nginx1 и nginx2, каждая из которых имеет 5 целевых групп каждая , Это решение имеет стоимость и эксплуатационные проблемы. Стоимость, потому что будет N
nginx услуги 5N
сервер конф. В оперативном плане, потому что я должен поддерживать разные файлы nginx.
2) Целевая группа направляет трафик c на IP (в данном случае nginx IP службы). Поэтому, всякий раз, когда я развертываю свою службу nginx fargate, я вручную обновляю частный IP-адрес в каждой из оставшихся целевых групп, которые не были настроены в службе. Однако это приведет к проблеме, заключающейся в том, что всякий раз, когда мой контейнер выходит из строя и Fargate пытается сохранить желаемое количество, мой личный IP-адрес будет изменен без моего ведома. Это приведет к простою остальных служб.