Почему не удается выполнить проверку работоспособности AWS ALB с правильной группой безопасности (EC2, Docker, nginx-proxy, ACM)?

У меня возникли проблемы с выполнением всех проверок работоспособности балансировщика нагрузки приложений AWS, когда группа безопасности моего экземпляра EC2 настроена правильно. Сайт работает, когда я открываю порт 443 для всего мира (0.0.0.0/0), но не работает, когда я ограничиваю его группой безопасности лаборатории, даже если проверка источника / назначения отключена.

Конфигурация экземпляра EC2:

  • Запускается Docker Compose nginx-proxy, acme-companion, Django (web), и другие сервисы.
  • nginx-прокси сопоставляется с портами 80 и 443 на хосте.
  • Для моего домена задан параметр VIRTUAL_HOST.
  • Для параметра VIRTUAL_PORT правильно задано значение 8000
  • Группа безопасности экземпляра EC2:
    • Правильная настройка (ошибка): Разрешен вход по протоколу HTTPS (порт 443) только из группы безопасности лаборатории (например, sg-xxxxxxxxx).
    • Временное решение (рабочее): Разрешает входящий HTTPS (порт 443) с 0.0.0.0/0.
    • Проверка источника/назначения отключена на экземпляре EC2.

Поток запросов:

Запрос клиента -> Маршрут 53 -> Балансировщик нагрузки приложения (HTTPS:443) -> AWS WAF -> Целевая группа ALB (HTTPS:443 ) -> Экземпляр EC2 (порт 443, nginx-прокси) -> Docker Контейнер (порт 8000, Django)

Конфигурация ALB:

  • Прослушиватель на порту 80 (HTTP) перенаправляет на HTTPS (443).
  • Прослушиватель на порту 443 (HTTPS) перенаправляет данные целевой группе.
  • Группа безопасности ALB: Разрешает вход на порты 80 и 443 из 0.0.0.0/0.
  • Проверка работоспособности целевой группы:
  • Протокол: HTTPS
  • Порт: 443
  • Путь: /api/v1/health/ (У меня есть эта конечная точка в моем приложении django, но это то, что я получаю в своих логах nginx-proxy "/etc/nginx/html/api/v1/health/index.html" is not found (2: No such file or directory), client: 172.xx.x.xxx, server: , request: "GET /api/v1/health/ HTTP/1.1" host: "172.xx.x.xxx")

Почему ВСЕ проверки работоспособности завершаются неудачей, когда группа безопасности экземпляра EC2 корректно разрешает трафик только из группы безопасности ALB, даже если проверка источника/назначения отключена?

у меня это сработало: Попробуйте перенаправить путь проверки работоспособности в корневой каталог вашего проекта , а затем перезапустить nginx внутри вашего контейнера

Я решил эту проблему, удалив эту переменную окружения из моего веб-сервиса Django LETSENCRYPT_HOST.

Вернуться на верх