Apache超时配置
1. KeepAliveTimeout
语法 KeepAliveTimeout seconds
默认 5
上下文 server config, virtual host
说明 服务器在持久连接上等待后续请求的时间量。Apache将在关闭连接之前等待后续请求的秒数。一旦接收到请求,超时指令指定的超时值将被应用。将KeepAliveTimeout设置为高值可能会在负载很大的服务器上造成性能问题。超时越高,就会有越多的服务器进程被占用,等待与空闲客户机的连接。在基于名称的虚拟主机上下文中,将使用一组NameVirtualHost中的第一个定义的虚拟主机(默认主机)的值。其他值将被忽略。
2. ProxyTimeout
语法 ProxyTimeout seconds
默认 Value of Timeout
上下文 server config, virtual host
说明 代理请求的网络超时。该指令允许用户在代理请求上指定超时。当您有一个挂起的慢/有bug的appserver时,这是非常有用的,您宁愿返回一个超时并优雅地失败,而不是等待服务器返回的时间。
3. RequestReadTimeout
语法 RequestReadTimeout [header=timeout[[-maxtimeout],MinRate=rate] [body=timeout[[-maxtimeout],MinRate=rate]
默认 Unset; no limit
上下文 server config, virtual host
说明 设置从客户端接收请求头和主体的超时值。这个指令可以设置不同的超时来接收请求头和来自客户端的请求体。如果客户端未能在配置的时间内发送消息头或主体,则会发送408次请求超时错误。对于SSL虚拟主机,头超时值包括执行初始SSL握手所需的时间。如果用户的浏览器被配置为查询证书撤销列表,而CRL服务器是不可访问的,那么初始SSL握手可能会花很长时间,直到浏览器放弃等待CRL。因此,不应该将头超时值设置为SSL虚拟主机的非常低的值。主体超时值包括SSL重新协商所需的时间(如有必要)。在使用AcceptFilter时(通常是Linux和FreeBSD),在接收到至少一个字节(或者是整个请求)之前,套接字不会被发送到服务器进程。使用RequestReadTimeout配置的头超时只有在服务器进程接收到套接字之后才有效。如:RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
l Fixed timeout value:
type=timeout
每秒钟允许读取所有请求头或主体的时间。0的值表示没有限制。
l Timeout value that is increased when data is received:
type=timeout,MinRate=data_rate
与上面一样,但是每当接收到数据时,就会根据指定的最小数据速率(以每秒字节数)增加超时值。
l Timeout value that is increased when data is received, with an upper bound:
type=timeout-maxtimeout,MinRate=data_rate
与上面一样,但是超时将不会超过指定的超时范围的第二个值。
4. TimeOut
语法 TimeOut seconds
默认 300
上下文 server config, virtual host
说明 服务器在请求失败之前等待某些事件的时间。超时指令定义了Apache在各种情况下等待输入输出的时间长度。
l 在读取客户端的数据时,如果读取缓冲区为空,则等待TCP包到达的时间长度。
l 当向客户端写入数据时,如果发送缓冲区满了,等待确认包的时间长度。
l 在mod_cgi中,等待从CGI脚本输出的时间长度。
l 在mod_ext_filter中,从过滤过程等待输出的时间长度。
l 在mod_proxy中,如果没有配置ProxyTimeout,则默认的超时值。