Nginx 响应 400 的处理
作者从实际生产环境出发,剖析了Nginx返回400 Bad Request的几种隐蔽原因。除了常见的请求头过大,端口探测工具或LVS等负载均衡设备的健康检查也会导致大量400错误,日志里全是空行非常干扰排查。 文章深入分析了这类日志的特征:请求里连HTTP方法(如GET)或协议版本(HTTP/1.1)都没有,导致它们根本匹配不到任何常规的location规则。作者尝试用`if`指令过滤协议版本,但发现这无法阻止日志产生。 最终,他给出了一个简洁有效的方案:通过配置一个监听默认端口、主机名为空的`server`块,并直接关闭其访问日志(`access_log off`),将这些“无效”请求全部吸收并静默处理。这个方法从源头上解决了日志污染问题,干净利落。