Nginx 响应 400 的处理
浏览:4239次 出处信息
网上很多人写过相关的文章,大多的人的原因是因为 header 的头部大小超了,引起响应 400 告诉是 bad request.但其实还有一种可能,就是象端口测试工具,只是检查端口是否是活的。象 LVS 之类什么的,也会引起这种问题,然后日志中会出现大量的 400 象下面这样.
183.44.94.195 - - [19/Apr/2013:15:42:19 +0800] - - 400 0 "-" "-" -
183.44.94.195 - - [19/Apr/2013:15:42:19 +0800] - - 400 0 "-" "-" -
另外,还有请求时,连 GET 之类的信息都没有,也有可能引起。没有 HTTP 指定的协议版本信息 HTTP/1.1 之类信息,也都会引起 400 。象这种空的日志。
这时会有大量的这种日志,非常影响我们查看和处理日志。
if ($server_protocol !~ "HTTP/1.[10]" ) {
return 403;
}
测试过使用这种方式,但并关不了日志,虽然能过滤出来协议信息不存在的请求。因为这种请求不会落到任何 location 中。
所以这种的最简单的解决方案就只有
server {
listen 80 default_server;
server_name '';
access_log off;
}
加一个 server 给所有主机名不存的请求放到这个中来处理,并给日志关掉。
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
文章信息
- 作者:扶 凯 来源: 扶凯
- 标签: 400
- 发布时间:2013-05-01 22:31:58
近3天十大热文
-
[939] WordPress插件开发 -- 在插件使用 -
[117] 解决 nginx 反向代理网页首尾出现神秘字 -
[50] 如何保证一个程序在单台服务器上只有唯一实例( -
[48] 整理了一份招PHP高级工程师的面试题 -
[48] 用 Jquery 模拟 select -
[48] 海量小文件存储 -
[47] ps 命令常见用法 -
[47] Innodb分表太多或者表分区太多,会导致内 -
[46] 全站换域名时利用nginx和javascri -
[45] find命令的一点注意事项