400 bad request
Dave Cheney
dave at cheney.net
Sat Jun 13 06:22:03 MSD 2009
So, here is what I get on my nginx when I submit a bad request
[root at odessa ~]# nginx -v
nginx version: nginx/0.7.31
moriarty:~ dave$ telnet odessa.cheney.net 80
Trying 64.85.168.249...
Connected to odessa.cheney.net.
Escape character is '^]'.
GET $ HTTP/1.1
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx</center>
</body>
</html>
Connection closed by foreign host.
==> /var/log/nginx/access.log <==
203.166.242.201 odessa.cheney.net - [12/Jun/2009:22:18:41 -0400] "-"
400 166 "-" "-"
If you are receiving *nothing* in your logs then my next suggestion is
to get out ngrep and sniff the wire traffic
[root at odessa ~]# ngrep -d eth0 port 80
interface: eth0 (64.85.160.0/255.255.240.0)
##
T 203.166.242.201:55162 -> 64.85.168.249:80 [AP]
GET $ HTTP/1.1..
##
T 64.85.168.249:80 -> 203.166.242.201:55162 [AP]
<html>..<head><title>400 Bad Request</title></head>..<body
bgcolor="white">..<center><h1>400 Bad Request</h1></cente
r>..<hr><center>nginx</center>..</body>..</html>..
########
T 65.55.232.48:63090 -> 64.85.168.249:80 [A]
If you can post the results of your ngrep, I might be able to suggest
something.
Cheers
Dave
On 13/06/2009, at 11:44 AM, snacktime wrote:
> Dave Cheney Wrote:
> -------------------------------------------------------
>> So, to confirm, there is no record of the request
>> at all in your
>> access log?
>
> Nothing. I set the log level on the error log to debug also to see
> if that would force something into the error logs, but nothing.
>
> But facebook is telling you that it
>> could not contact your
>> servers (sorry, I have no experience with writing
>> facebook apps) ?
>>
> I'll try to explain as best I can. The request that generates the
> errors is not going through facebook, that's how we know it's nginx
> because the page displays the raw nginx error page with the nginx
> version number and all. That page is inside an iframe on a facebook
> canvas page. The iframe loads pages directly from our server.
> Inside the iframe is also some fb javascript code that loads a proxy
> file from our server directly to handle cross domain iframe
> communications, and at the same time sets cookies on our domain. We
> think it's the facebook javascript code we are running in our iframe
> that is setting the cookies that nginx doesn't like. We are pretty
> sure about this because some of the banner ads we run on other pages
> of our site are also facebook connect iframes, and they also have
> the same effect. Once they set a bad cookie, all the images on the
> facebook canvas which reference our servers start to break due to
> 400 responses.
>
> Chris
>
> Posted at Nginx Forum: http://forum.nginx.org/read.php?2,2757,2880#msg-2880
>
>
More information about the nginx
mailing list