400 bad request with the other method such as info,list and lock

Maxim Dounin mdounin at mdounin.ru
Wed Aug 15 11:50:23 UTC 2012


Hello!

On Tue, Aug 14, 2012 at 07:10:05AM -0400, kj wrote:

> Hello Nginx team,
> 
> I am trying to install our solution with Nginx as a reverse proxy. And I am
> having some problem shown as below.
> 
> 172.30.2.84 - - [14/Aug/2012:19:51:17 +0900] "GET /api/local/test.doc/info
> HTTP/1.1" 400 971 "-" 
> 172.30.2.84 - - [14/Aug/2012:19:51:17 +0900] "GET /api/local/info HTTP/1.1"
> 400 971 "-" 
> 172.30.2.84 - - [14/Aug/2012:19:51:17 +0900] "GET /api/local/info HTTP/1.1"
> 400 971 "-" 
> 172.30.2.84 - - [14/Aug/2012:19:51:17 +0900] "GET /api/local/info HTTP/1.1"
> 400 971 "-" 
> 172.30.2.84 - - [14/Aug/2012:19:51:17 +0900] "GET /api/local/test.doc/info
> HTTP/1.1" 400 971 "-"
> 172.30.2.84 - - [14/Aug/2012:19:51:17 +0900] "GET /api/local/list HTTP/1.1"
> 400 971 "-" 
> 172.30.2.84 - - [14/Aug/2012:19:51:17 +0900] "GET /api/local/info HTTP/1.1"
> 400 971 "-" 
> 
> As you can see, 400 bad request error occurred. I have already experienced
> that I used to handle pound reverse proxy server with our solution.
> Pound server has xhttp option that allow WEBDAV method from outside through
> itself. I could solve similar issue under pound server by using xhttp
> option. below description quoted from pound man page.

All syntactically correct methods are allowed by nginx by default 
when proxying.  If method isn't allowed for a particular resource, 
nginx will return 405 (Method Not Allowed), not 400 (Bad Request).  
The above errors aren't result of method problems for sure, as you 
can see from request line logged the method used was GET.

To find out the reason for errors in question take a look at error 
log.

And you may also want to make sure errors are actually returned 
by nginx, not by your backend.  The size logged (971) suggests 
it's at least not nginx standard error page.

Maxim Dounin



More information about the nginx mailing list