reqtimeout模块有一个最小数据速率的设置,它看起来像这样(包括默认注释):
# Wait max 10 seconds for the first byte of the request body (if any) # From then, require a minimum data rate of 500 bytes/s RequestReadTimeout body=10,minrate=500
这个数据率是如何计算的? 如果一个客户正在经历一个小小的混帐,那么客户有多宽大? 例如,在做一个稍微大的请求时(比如发布一个文件?),我可以想象,虽然速度总的来说要高得多,但是在某个时候,可能有一个原因,那就是速度没有得到满足。 它是每秒测量的吗? 或某种移动窗口?
发现这个文档实际上很清晰:
从https://httpd.apache.org/docs/2.2/mod/mod_reqtimeout.html
允许至less10秒钟接收请求主体。 如果客户端发送数据,则将收到的每1000个字节的超时时间增加1秒,没有超时的上限(LimitRequestBody间接给定的限制除外):
由此我们可以看到,对于每个“最小”字节数量,我们会得到额外的一秒。 所以'速度'不是“速度”(至less你应该定义一个窗口等)。
你有一个最初的body秒,这是你的第一个窗口,如果你想谈论这些条款。 每一个minrate的字节数增加了一秒,所以只要你有时间,你可以降低一点速度。