nginx过一段时间出现400 Bad Request 错误的解决方法

 tomcat整合nginx成功后,等访问一段时间后,会出现

Bad Request (Invalid Hostname)的错误,

因为是已经成功的配置,所以判定可能是哪里的限制设置有问题,最后在官方网站找到解决办法:

语法: large_client_header_buffers number size;
默认值:
large_client_header_buffers 4 8k;
上下文: httpserver

设置读取客户端请求超大请求的缓冲最大number(数量)和每块缓冲的size(容量)。 HTTP请求行的长度不能超过一块缓冲的容量,否则nginx返回错误414 (Request-URI Too Large)到客户端。 每个请求头的长度也不能超过一块缓冲的容量,否则nginx返回错误400 (Bad Request)到客户端。 缓冲仅在必需是才分配,默认每块的容量是8K字节。 即使nginx处理完请求后与客户端保持入长连接,nginx也会释放这些缓冲。

也就是设置一下

large_client_header_buffers就可以了.


补充:
因为之前用的是一个顶级域名zicheng.net,在搜索别人的问题时看到了一个回答,这样的域名会被解析出问题,最后换成一个二级域名hw.zicheng.net.这个Bad Request错误基本就没出现过了.


原文地址:https://www.cnblogs.com/xusir/p/3271838.html