Nginx过一段时间出现400 Bad Request 错误解决方法
Tomcat整合Nginx成功后,等访问一段时间后会出现
Bad Request (Invalid Hostname)的错误。
因为是已经成功的配置,所以判定可能是哪里的限制设置有问题,最后在官方网站找到解决办法:
设置读取客户端请求超大请求的缓冲最大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错误基本就没出现过了。
搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm
CentOS 6.3下配置Nginx加载ngx_pagespeed模块 http://www.linuxidc.com/Linux/2013-09/89657.htm
CentOS 6.4安装配置Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm
Nginx搭建视频点播服务器(仿真专业流媒体软件) http://www.linuxidc.com/Linux/2012-08/69151.htm
查看评论 回复