访问日志中的错误代码太多了

Apache访问日志显示了太多的408错误代码,每天近400个。

xxxx – – [25 / Apr / 2012:22:43:06 -0600]“ – ”408 0“ – ”“ – ”

这些来自不同IP地址的请求大约有400个。

我不知道这是产生太多孩子的原因,有时它接近624个孩子,也有less数用户。我怎样才能找出确切的原因。我们正在使用PHP和MySQL(连接 – 800)

启用:tcp_tw_reuse

syn_retries:2

syn_ack_retires:3

鳍TIME_OUT:30

Apache的超时时间:15

保持活跃

keepalive timout 7

max_spare:40

min_spare:25

requestperchild:4000

MAX_CLIENTS:800

你把Timeout设置为15 ? 为什么?

HTTP 408是“请求超时”

基本上它发生在客户端connect() ,但在超时之前不发送任何数据。

10.4.9 408请求超时

客户端在服务器准备等待的时间内没有发出请求。 客户可以随时重复请求而不做任何修改。

RFC2616§10

将您的Timeout更改回默认值300,并停止尝试过早地优化您的系统。

正如人们上面所说,这是请求超时。

你可能会遭受slowloris攻击,如果是这种情况,你很高兴看到日志中的所有这些408,这意味着你的服务器正在丢弃攻击者,是的,检查你的超时设置,检查你是否有mod_reqtimeout。

如果你的服务器没有删除它们,那么它很可能是down / unreachable。

另请参阅如何检测Slowloris?

检查日志中的所有408状态的IP和date时间,检查来自同一个IP的连续请求,并检查他们的请求时间,如果时间差低,那么恭喜你有mod_security启用和正确configuration。 更多的信息检查这个( https://www.modsecurity.org/ )出mod_security。