NginxのWebDAVにFinderからアップロード出来ない問題とその解決策

NginxのWebDAVにファイルをアップロードする際, Mac OS XのFinderを用いると, アップロードしたファイルが0バイトになることがあります. これはアップロードするファイルが一定のサイズ以上のときに発生し, NginxをWebDAVへのリバースプロキシとして利用する際にも発生します.

この問題はMac OS X 10.5 Leopard以降でファイルをアップロードする際に, chunked transfer encodingが利用され, Nginxがchunked transfer encodingされたリクエストを適切に処理出来ないため発生します.

Nginx 1.3.9以降では

nginx-1.3.9 development version has been released, with support for chunked transfer encoding while reading client request body. (http://nginx.org/2012.html)

となっており, chunked transfer encodingされたリクエストを処理することが出来ます. よって, Nginxを1.3.9以上にアップデートすることが解決策になります.

Debian 7 Wheezyの安定版ではNginxのバージョンが1.2.1のため, wheezy-backportsからNginxインストールすることで1.4.1を利用でき, この問題を解決できます.