proxy_pass of PUT with no Content_length header returns 411

Maxim Dounin mdounin at mdounin.ru
Thu Mar 21 10:32:34 UTC 2013


Hello!

On Wed, Mar 20, 2013 at 06:09:26PM -0400, nickpalmer wrote:

> I am having trouble with proxy_pass and PUT without a Content-Length header
> returning a 411 error.
> 
> # curl -XPUT http://localhost:8080/
> <html>
> <head><title>411 Length Required</title></head>
> <body bgcolor="white">
> <center><h1>411 Length Required</h1></center>
> <hr><center>nginx/1.1.19</center>
> </body>
> </html>
> # touch temp
> # curl -X PUT http://localhost:8080/ -T temp
> {"response": "ok"}
> #
> 
> Relevant configuration:
> 
> # Proxy to Backend Server
> server {
>   listen localhost:8080;
> 
>   location / {
>     proxy_set_header Host $http_host;
>     proxy_set_header X-Forwarded-Host $http_host;
>     proxy_set_header X-Real-IP $remote_addr;
>     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>     proxy_pass http://backend_server;
>   }
> }
> 
> I found this post which seems to be the same problem:
> http://forum.nginx.org/read.php?2,72279,72279#msg-72279
> 
> Is there a way to get nginx to proxy PUT requests WITHOUT a Content-Length
> header?
> Does a newer version of nginx NOT suffer from this limitation?

PUT requests without a Content-Length header (either using chunked 
transfer encoding, or without a request body at all) are allowed 
in nginx 1.3.9+.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



More information about the nginx mailing list