amazon-web-services - 我的 Amazon ELB 上的 408 超时

标签 amazon-web-services

我们在 ELB 访问日志中看到了很多 408 超时。遇到过这个帖子 https://serverfault.com/questions/485063/getting-408-errors-on-our-logs-with-no-request-or-user-agent

还有 https://forums.aws.amazon.com/thread.jspa?messageID=307846

这些只是我发现的两个示例线程,但其他人提出了相同的解决方案,但并不高兴。

已将 Web 服务器超时设置为 < ELB 空闲超时,设为 = 并设为 > 比它,同样的结果,我们的日志被这些 408 污染了。一个更大的问题是,它们还会影响我们的 ELB 的平均延迟响应时间,而这正是我们触发自动缩放器的原因。

我们在后端实例上使用 Tomcat。 tomcat 上没有任何日志表明已收到请求,但 ELB 仍显示请求已超时。
在我们的 ELB 访问日志中,没有为 408 提供后端 IP,因此在我看来,请求根本没有到达实例,但亚马逊不同意:(。
有没有人遇到过这个问题并得到了可靠的解决方案?

最佳答案

关注 suggestion of milsonspt in the linked thread ,我向我的服务器添加了一个虚拟主机,它监视不同的线程而不是 80,因此所有运行状况检查都将在该主机上执行(将 CUSTOM_PORT 替换为要用于 ELB 运行状况检查的任何端口)。

Listen CUSTOM_PORT

<VirtualHost *:CUSTOM_PORT>
    CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/access_log_elb_health_check_rotated_%Y-%m-%d-%H_%M_%S 10M" combined
</VirtualHost>   

确保 ELB 执行 不是 在该端口上有一个监听器。

该配置删除了 408 错误并将所有健康检查记录在一个单独的日志中,因此您可以获得一个整洁的常规访问日志和一个用于健康检查的专用日志。

关于amazon-web-services - 我的 Amazon ELB 上的 408 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28304680/

相关文章:

amazon-web-services - 使用 AWS CDK 将自定义弹性 IP 关联到 NAT 网关

json - 属性配置的值必须是环境变量具有字符串(或简单类型)属性的对象

amazon-web-services - 来自 2 个不同 AWS 账户的跨堆栈引用

javascript - 使用 Promisify 从回调转换为 Async-Await 格式后,AWS S3 上传不起作用

c# - AWS API 网关签名

amazon-web-services - AWS Fargate 无法通过公共(public) DNS 名称访问应用程序

amazon-web-services - 标签事件规则 AWS - Cloudformation

amazon-web-services - 收集 AWS Lambda 执行数据

node.js - 如何更新字符串集 (SS) 类型的 Dynamodb 中的项目?

amazon-web-services - 如何在AWS Cloudformation的 "cidrblock"中获取子网的 "outputs"?