﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	uname	nginx_version
298	Support X-accel-redirect with webdav PUT	David Butler		"

To reproduce:

nginx.conf excerpt:

        location /tmp/ {
                alias /tmp/;
                autoindex on;
                dav_methods PUT;
        }

        location /test/ {
                proxy_pass        http://localhost:8000;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_pass_request_body off;
                proxy_set_header Content-Length 0;
        }

on a console:
socat TCP-LISTEN:8000,reuseaddr,crlf stdio


chrome console:
var xhr = new XMLHttpRequest()
xhr.open(""put"", ""http://<scrubbed>/test/1234"")
xhr.send(""fubar"")


socat:
PUT /test/1234 HTTP/1.0
X-Real-IP: <scrubbed>
Content-Length: 0
Host: localhost:8000
Connection: close
Cache-Control: no-cache
Pragma: no-cache
Origin: http://<scrubbed>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17
Content-Type: application/xml
Accept: */*
Referer: http://<scrubbed>/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

HTTP/1.0 200
X-Accel-Redirect: /tmp/asdf


nginx/error.log:

2013/02/13 20:08:12 [error] 1494#0: *12474 open() ""/tmp/asdf"" failed (2: No such file or directory), client: 192.168.8.189, server: , request: ""PUT /test/1234 HTTP/1.1"", upstream: ""http://127.0.0.1:8000/test/1234"", host: ""<scrubbed>, referrer: ""<scrubbed>""

If I try to do a PUT request directly, it creates the file...

"	enhancement	closed	minor		nginx-core	1.3.x	wontfix		croepha@…	"Linux 3.2.0-36-generic-pae #57-Ubuntu SMP Tue Jan 8 22:01:06 UTC 2013 i686 i686 i386 GNU/Linux
"	"
nginx version: nginx/1.1.19
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-debug --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-auth-pam --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-echo --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-upstream-fair --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-dav-ext-module
"
