Дано У меня здоровая работа production
Среда, настроенная с помощью AWS Elastic Beanstalk, с 3 экземплярами EC2, балансирующими нагрузку с помощью ELB. (Экземпляры EC2 - это контейнеры Docker)
когда Я клонирую среду EB в новую среду EB newproduction-2
затем новая среда успешно клонирована, все экземпляры EC2 работают (если я получаю доступ к общедоступной странице IP / DNS EC2, отображается нужная мне страница)
НО URL-адрес балансировщика нагрузки возвращает пустую страницу И production-2
Load Balancer жалуется, что 0 из 3 экземпляров исправны (серьезные случаи)
Балансировщик нагрузки AWS EB перенаправляет запросы только тем экземплярам, которые он считает «работоспособными» (во избежание возврата 500 страниц в случае отказа экземпляра EC2).
Способ, которым балансировщик нагрузки достигает этого, заключается в том, что он проверяет согласованный путь ваших экземпляров сервера, независимо от того, отвечают ли они 2xx
(200, 201, ...)
По умолчанию каждый раз, когда вы клонируете среду Elastic Beanstalk, используется что-то вроде /healcheck.html
. Поэтому, если ваш сервер экземпляра EC2 не отвечает на этот путь (например, не имеет этого файла), он считает, что экземпляр сервера EC2 неработоспособен.
Поэтому либо создайте этот файл (чтобы my-ec2-public-dns.elasticbeanstalk.com/healthcheck.html
существует)
... или (лучше) измените этот путь на /
или что-то ценное для вашего бизнеса. в консоли AWS перейдите в EC2 > Load Balancer (in left panel menu) > click on your load-balancer > health check > edit
и изменить Ping Target HTTP:80/healthcheck
к Ping Target HTTP:80/