apacheのWebDAVでタイムアウト

apacheWebDAVタイムアウト

apacheのmod_davで提供しているWebDAV。ある程度大きなファイルをPUSHすると、16秒〜20秒程度でタイムアウトを起こすという現象。
erro_logにはこんなろぐがでています。

[Fri May 24 11:23:07.347435 2019] [reqtimeout:info] [pid 26293:tid 140308231137024] [client XX.XX.XX.XX:46064] AH01382: Request body read timeout
[Fri May 24 11:23:07.356439 2019] [dav:error] [pid 26293:tid 140308231137024] (70007)The timeout specified has expired: [client XX.XX.XX.XX:46064] An error occurred while reading the request body (URI: /hoge/bigfile.mp3)  [408, #0]

でかいといっても10G程度ですが。
で、ApacheのTimeout値を調整してもNG。だいたいTimeoutのデフォルト値って300秒くらいだったと思う。

一行目にでているRequest bodyが云々というところに注目。そうか、レスポンスを返すタイムアウトじゃなくて、データを受け取るときのタイムアウトがおきているんですね。
mod_reqtimeoutというモジュールがあって、これで制御できる模様。
こんなディレクティブを追加しました。

 RequestReadTimeout  header=30 body=180

ヘッダの読み取りに30秒、リクエストボディの読み取りに180秒。
通常はレスポンスの方が時間がかかるんですけどね。