场景:
利用Nginx进行负载均衡,Nginx下对两个tomcat进行负载均衡,当进行某项接口请求时,由于参数过大,导致Request请求的头部长度超出了默认长度,接口调用失败 Request header is too large。
处理办法:
分别对Nginx和tomcat进行配置,切记,两个地方都要配置:
1、配置tomcat容器中的server.xml
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" maxHttpHeaderSize ="102400" maxPostSize="-1"/>
如上,增加 maxHttpHeaderSize ="102400" maxPostSize="-1" 两项参数配置
2、配置Nginx配置文件nginx.conf
在配置文件的http块中增加如下配置:
#请求头总长度大于512k时使用large_client_header_buffers设置的缓存区
client_header_buffer_size 512k;
#large_client_header_buffers 指令参数4为个数,512k为大小,默认是8k。申请4个512k。
large_client_header_buffers 4 512k;
3、若是直接将项目打成jar包的话,则直接配置application.yml即可。
server:
max-http-header-size: 102400

当接口请求参数过大导致Nginx和Tomcat报错Requestheaderistoolarge时,可以通过配置解决。需分别在Tomcat的server.xml中增加maxHttpHeaderSize和maxPostSize参数,并在Nginx的nginx.conf中配置client_header_buffer_size和large_client_header_buffers。通过增大这两个配置值,允许更大的请求头和内容大小。

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



