The reqtimeout module has a setting for mimimal data-rate, which looks (inlucing default comment) like this for the body:

# 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

How is this datarate calculated? How much leniency does a client have if for instance it is experiencing a small hickup? For instance, when doing a somewhat larg-ish request (say posting a file?) I can imagine that while overall the speed will be much higher then that, at a certain point there could be a reason that rate isn't met. Is it measured per second? or some sort of shifting window?


Found that the docs are actually clear on this:
From https://httpd.apache.org/docs/2.2/mod/mod_reqtimeout.html

Allow at least 10 seconds to receive the request body. If the client sends data, increase the timeout by 1 second for every 1000 bytes received, with no upper limit for the timeout (exept for the limit given indirectly by LimitRequestBody):

From that we can see that for each "minrate" amount of bytes, we get an extra second. So the 'rate' is not "speed" (for wich you should define a window, etc).

You have an initial body seconds, and that is your first window, if you want to talk in those terms. Every minrate amount of bytes adds one second, so as long as you have time, you can drop speed for a bit.

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.