Контейнер Redis для проверки работоспособности с ALB

Я развернул контейнер Redis с помощью Amazon ECS за балансировщиком нагрузки приложений. Похоже, проверки работоспособности не пройдены, хотя контейнер работает и готов к приему соединений. Кажется, что происходит сбой, потому что проверка работоспособности - HTTP, и, конечно, redis не является http-сервером.

# Possible SECURITY ATTACK detected. It looks like somebody is sending 
POST or Host: commands to Redis. This is likely due to an attacker 
attempting to use Cross Protocol Scripting to compromise your Redis 
instance. Connection aborted.

Справедливо.

Классические балансировщики нагрузки, которые я считаю, будут в порядке, так как я могу явно пинговать TCP. Возможно ли использовать Redis с ALB?

3 ответа

Измените проверку здоровья на протокол HTTPS. Все балансировщики нагрузки Amazon поддерживают это. Чем ближе проверка вашего здоровья к тому, что пользователь получает доступ, тем лучше. Проверка HTML-страницы лучше проверки TCP. Проверка страницы, которая требует, чтобы ответные службы отвечали лучше. TCP иногда будет успешным, даже если ваш веб-сервер не обслуживает страницы.

Разверните свой контейнер с установленным nginx и направьте проверку работоспособности на порт обработки nginx.

Недавно я столкнулся с подобной проблемой: мой контейнер Redis был запущен и работал правильно, но # Possible SECURITY ATTACK detectedсообщение появлялось в журналах раз в минуту. Проверка работоспособности была curl -fs http://localhost:6379 || exit 1; это было отклонено кодом Redis (ищите «АТАКА БЕЗОПАСНОСТИ»).

Мое решение заключалось в использовании проверки работоспособности без CURL: redis-cli ping || exit 1(взято из этого поста). Состояние проверки работоспособности показывает «исправно», а журналы чистые.

Я знаю, что приведенного выше решения будет недостаточно для всех сторон, но, надеюсь, оно будет полезно при формировании вашего собственного решения.

Другие вопросы по тегам