mod_reqtimeout.xml revision ba4c888b67368c21daa6a84921bc6644cdb80cb5
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe<?xml version="1.0"?>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe<?xml-stylesheet type="text/xsl" href="/style/manual.en.xsl"?>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe<!-- $LastChangedRevision$ -->
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe<!--
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe Licensed to the Apache Software Foundation (ASF) under one or more
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe contributor license agreements. See the NOTICE file distributed with
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe this work for additional information regarding copyright ownership.
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe The ASF licenses this file to You under the Apache License, Version 2.0
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe (the "License"); you may not use this file except in compliance with
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe the License. You may obtain a copy of the License at
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe http://www.apache.org/licenses/LICENSE-2.0
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
3f08db06526d6901aa08c110b5bc7dde6bc39905nd Unless required by applicable law or agreed to in writing, software
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe distributed under the License is distributed on an "AS IS" BASIS,
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe See the License for the specific language governing permissions and
3f08db06526d6901aa08c110b5bc7dde6bc39905nd limitations under the License.
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe-->
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe<modulesynopsis metafile="mod_reqtimeout.xml.meta">
0066eddda7203f6345b56f77d146a759298dc635gryzor
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung<name>mod_reqtimeout</name>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe<description>Set timeout and minimum data rate for receiving requests
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin</description>
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin<status>Experimental</status>
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin<sourcefile>mod_reqtimeout.c</sourcefile>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe<identifier>reqtimeout_module</identifier>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe<compatibility>Available in Apache 2.2.15 and later</compatibility>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe<section id="examples"><title>Examples</title>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <ol>
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin <li>
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin Allow 10 seconds to receive the request including the headers and
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin 30 seconds for receiving the request body:
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <example>
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin RequestReadTimeout header=10 body=30
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin </example>
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin </li>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin <li>
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin Allow at least 10 seconds to receive the request body.
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin If the client sends data, increase the timeout by 1 second for every
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin 1000 bytes received, with no upper limit for the timeout (exept for
57b31f30545668d28e895efe7f5c0eb15d37a03figalic the limit given indirectly by
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin <directive module="core">LimitRequestBody</directive>):
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <example>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe RequestReadTimeout body=10,MinRate=1000
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe </example>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe </li>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <li>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe Allow at least 10 seconds to receive the request including the headers.
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe If the client sends data, increase the timeout by 1 second for every
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe 500 bytes received. But do not allow more than 30 seconds for the
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe request including the headers:
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <example>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe RequestReadTimeout header=10-30,MinRate=500
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe </example>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe </li>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe </ol>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe</section>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe<directivesynopsis>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe<name>RequestReadTimeout</name>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe<description>Set timeout values for receiving request headers and body from client.
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe</description>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe<syntax>RequestReadTimeout
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe[header=<var>timeout</var>[[-<var>maxtimeout</var>],MinRate=<var>rate</var>]
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe[body=<var>timeout</var>[[-<var>maxtimeout</var>],MinRate=<var>rate</var>]
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe</syntax>
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin<default>Unset; no limit</default>
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin<contextlist><context>server config</context><context>virtual host</context>
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin</contextlist>
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin<usage>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <p>This directive can set various timeouts for receiving the request headers
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin and the request body from the client. If the client fails to send headers or
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin body within the configured time, a <code>408 REQUEST TIME OUT</code> error
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin is sent.</p>
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin <p>For SSL virtual hosts, the header timeout values include the time needed
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin to do the initial SSL handshake. The body timeout values include the time
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe needed for SSL renegotiation (if necessary).</p>
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin
27dcd8d81085fd60aadcd8a9bad35a607b26b758nilgun <p>When an <directive module="core">AcceptFilter</directive> is in use
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin (usually the case on Linux and FreeBSD), the socket is not sent to the
57b31f30545668d28e895efe7f5c0eb15d37a03figalic server process before at least one byte (or the whole request for
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <code>httpready</code>) is received. The header timeout configured with
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <code>RequestReadTimeout</code> is only effective after the server process has
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe received the socket.</p>
59877c2b4bb77f563370d7fb238f4a6d7a0e7f44minfrin
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <p>For each of the two timeout types (header or body), there are three ways
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe to specify the timeout:
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe </p>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <ul>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <li><strong>Fixed timeout value</strong>:<br />
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <example><var>type</var>=<var>timeout</var></example>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <p>The time in seconds allowed for reading all of the request headers or
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe body, respectively. A value of 0 means no limit.</p>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe </li>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf <li><strong>Timeout value that is increased when data is
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe received</strong>:<br />
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <example>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <var>type</var>=<var>timeout</var>,MinRate=<var>data_rate</var>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe </example>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <p>Same as above, but whenever data is received, the timeout value is
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe increased according to the specified minimum data rate (in bytes per
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe second).</p>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe </li>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <li><strong>Timeout value that is increased when data is received, with an
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf upper bound</strong>:<br />
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <example>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <var>type</var>=<var>timeout</var>-<var>maxtimeout</var>,MinRate=<var>data_rate</var>
9a58dc6a2b26ec128b1270cf48810e705f1a90dbsf </example>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe <p>Same as above, but the timeout will not be increased above the second
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe value of the specified timeout range.</p>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe </li>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe </ul>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe</usage>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe</directivesynopsis>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe</modulesynopsis>
5f4e50966b2b9b58436a1651cbe588d1b595657ewrowe