今天也是处理一个bug的时候,发现的这个服务器错误问题。“400 Bad Request”-- nginx/0.6.31
今天有人汇报nginx的HTTP400错误,而且这个HTTP400错误并不是每次都会出现的,查了一下发现nginx 400错误是由于request header过大,通常是由于cookie中写入了较长的字符串所引起的。
解决方法是不要在cookie里记录过多数据,如果实在需要的话可以考虑调整在nginx.conf中的client_header_buffer_size (默认1k)
若cookie太大,可能还需要调整large_client_header_buffers (默认4k),该参数说明如下:
请求行如果超过buffer,就会报HTTP 414错误(URI Too Long)
nginx接受最长的HTTP头部大小必须比其中一个buffer大,否则就会报400的HTTP错误(Bad Request)。
本文探讨了Nginx返回400错误的原因及解决方案,指出此错误通常由过大的请求头引起,尤其是Cookie中的长字符串。介绍了如何通过调整Nginx配置文件中的参数来解决该问题。

2万+

被折叠的 条评论
为什么被折叠?



