【发布时间】:2015-06-13 02:48:19
【问题描述】:
我从一个由 ELB 后面的 2 个 t2.medium 实例组成的站点收到间歇性但经常出现的 503 错误(“服务不可用:后端服务器已满负荷”)。没有一个负载特别重,所有监控似乎都正常。
此处的 AWS 文档: http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-error-message.html 说一个潜在的原因是 ELB 和 EC2 之间的超时设置不匹配:“将 keep-alive 超时设置为大于或等于负载均衡器的空闲超时设置”
EC2 上的 Apache conf 有:
- KeepAlive 开启
- MaxKeepAliveRequests 100
- KeepAliveTimeout 5
负载平衡器上的空闲超时为 60 秒。
那么,这似乎是一个原因,但我不确定修复方法。增加 Apache KeepAliveTimeout 不是 - 我理解 - 通常建议,而且我同样不确定减少 ELB 上的空闲超时对站点性能的影响。
推荐的方法是什么?如何了解我的设置的理想设置以及它处理的流量级别(目前大约 30-50 个请求/分钟)?
【问题讨论】:
-
增加 apache 超时应该没问题,在 ELB 之后,因为 ELB 持有连接,而不是浏览器直接持有它们。试试看?
标签: amazon-web-services amazon-ec2 amazon-elb