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

Балансировщик нагрузки AWS Elastic Beanstalk возвращает пустую страницу после клонирования среды EB, даже если EC2 запущен

Дано У меня здоровая работа 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/