ano*_*one 12 reverse-proxy nginx
我们最近实现了一个基于nginx的反向代理.
在调试我们的访问日志时,我们看到了相当多的状态代码400结果.
他们看起来像这样:
[07/Sep/2011:05:49:04 -0700] - "400" 0 "-" "-" "-"
Run Code Online (Sandbox Code Playgroud)
我们已启用调试错误日志记录,它们通常对应于以下内容:
2011/09/07 05:09:28 [info] 5937#0: *30904 client closed prematurely connection while reading client request line
Run Code Online (Sandbox Code Playgroud)
我们已经尝试过提高一些缓冲区,正如我们能够谷歌的几页所提到的那样.
http://www.ruby-forum.com/topic/173362
要么
无济于事.
为什么会这样?
这是一个strandard nginx反向代理 - > apache后端服务器.
值得一提的是,我们网站上独特的内容类型相当少.我们已使用许多浏览器对此进行了测试,并未亲自接收这400个结果中的任何一个.
谢谢!
进一步详细说明日志中类似条目的URL:
http://blog.rayfoo.info/2009/10/weird-web-server-access-log-entries
我发现这是由于使用造成的Chrome,这显然偶尔会打开额外的连接,而不会发送任何数据.
以下是一些更多信息:http://www.ruby-forum.com/topic/2953545
现在问题是如何处理它们 - 提供的答案并不令人满意.
首先,您的客户端很有可能发送带有非常大的 http 标头或 url 的请求。也许您的应用程序的旧版本设置了一些(可能很大)cookie,这些cookie现在未使用,并且一些客户端仍在尝试将它们发回。
我将标头缓冲区设置为一个非常大的值,并在应用程序端记录标头/请求的大小以及完整的请求(如果它们比平常大)。或者从链中完全取出 nginx,并以相同的条件记录标头/请求。如果可以的话,仅删除 400 错误来源的 IP/子网的 nginx。我想 nginx 可以记录这些 400 错误的源 IP。
| 归档时间: |
|
| 查看次数: |
10953 次 |
| 最近记录: |