Background:
? ? ? ? NGINX + Tomcat 应用,在外部调用接口进行POST/GET请求时,如果请求参数过长时会出现400 or 502 报错。百思不得其解。
Solution:
? ? ? ? #1 尝试NGINX 配置中增加:
server {
...
proxy_http_version 1.1;
proxy_set_header Connection "";
...
}
? ? ? ? ?及全局的http配置:
http {
...
client_header_buffer_size 128k;
client_max_body_size 50M; //其实不用这么大,因为这个接口只有文本参数
client_body_buffer_size 1024k;
proxy_buffer_size 128k;
proxy_buffers 256k;
proxy_busy_buffers_size 256k;
large_client_header_buffers 32k;
...
}
? ? ? ? ?#2 均不奏效,然后再次观察NGINX error日志,readv() failed (104: Connection reset by peer) while reading upstream,试试从Tomcat试试。
? ? ? ? 增加端口配置:
maxPostSize="-1"
? ? ? ? 无效。
? ? ? ? 再增加一条:
maxHttpHeaderSize="65536"
? ? ? ? 妥了。
|