1

我已经使用 Amazon ECS 在应用程序负载均衡器后面部署了一个 redis 容器。尽管容器正在运行并准备好接受连接,但健康检查似乎失败了。它似乎失败了,因为健康检查是 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.

很公平。

我认为经典的负载均衡器会很好,因为我可以显式地 ping TCP。将redis与ALB一起使用是否可行?

4

3 回答 3

2

将您的健康检查更改为协议 HTTPS。所有 Amazon 负载均衡器都支持这一点。您的健康检查越接近用户访问的内容越好。检查 HTML 页面优于 TCP 检查。检查需要后端服务响应的页面会更好。即使您的 Web 服务器不提供页面,TCP 有时也会成功。

于 2017-10-21T21:55:20.413 回答
1

部署安装了 nginx 的容器,并将运行状况检查定向到 nginx 处理端口。

于 2021-03-11T09:28:45.553 回答
0

我最近遇到了类似的问题:我的 Redis 容器已启动并正常工作,但该# Possible SECURITY ATTACK detected消息每分钟出现在日志中一次。健康检查是curl -fs http://localhost:6379 || exit 1;这被Redis 代码拒绝(搜索“安全攻击”)。

我的解决方案是使用非 CURL 健康检查:(redis-cli ping || exit 1取自这篇文章)。健康检查状态显示“健康”,并且日志是干净的。

我知道上面的解决方案对所有各方来说都不够,但希望它有助于形成您自己的解决方案。

于 2021-09-20T15:19:43.900 回答