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

Не удается получить доступ к экземпляру AWS ec2 за эластичным балансировщиком нагрузки

Я слежу Основное обучение AWS от lynda.com и я успешно настроил экземпляр EC2, но когда я пытаюсь разместить его за балансировщиком нагрузки, я не могу получить к нему доступ через общедоступный DNS ELB.

В консоли AWS Load Balancer отображается статус моего экземпляра OutOfService. В соответствии с руководством я настроил проверку работоспособности для балансировщика нагрузки с путем /heartbeat.php.

у меня тоже есть две группы безопасности настроить. Первый назван Балансировщик нагрузки - Prod который разрешает HTTP-трафик на порт 80 ни от кого. Мой балансировщик нагрузки принадлежит к этой группе безопасности. Кроме того, у меня есть группа безопасности под названием Веб-уровень - Прод. который разрешает только HTTP-трафик на порт 80 из Балансировщик нагрузки - Prod группа безопасности и мой собственный IP, SSH на моем IP и трафик MYSQL от самого себя, Веб-уровень - Прод. группа безопасности.

Я могу получить доступ к экземпляру с его собственным общедоступным DNS и могу подключиться к нему по SSH, я просто не могу получить к нему доступ через общедоступный DNS балансировщика нагрузки.

Когда я использую ssh и проверяю журналы доступа NGINX, я вижу это много раз.

172.??.??.?? - - [26/Aug/2015:16:43:46 +0000] "GET /heartbeat.php HTTP/1.1" 401 203 "-" "ELB-HealthChecker/1.0"

Полагаю, я должен видеть код состояния 200 вместо 401 203. Я пробовал изменить разрешения на /var/www/ на 777 рекурсивно в качестве теста, но это не имело значения.

Если при проверке состояния возвращается 401, AWS считает экземпляр неисправным и удаляет его из ELB. Поскольку у вас нет исправных экземпляров, ELB не работает.

Обратите внимание, что AWS получает доступ /heartbeat.php через IP, не через DNS-имя. Проверьте ответ, используя curl -I http://<your instance IP>/heartbeat.php и настройте конфигурацию вашего сервера, если он не обслуживается виртуальным хостом по умолчанию.