使用过长的url通过H2访问的时候, 容易出现请求被reset掉, 但是HTTP/1.1请求没事
TLSv1.2 (IN), TLS alert, close notify (256):
Empty reply from server
Connection #0 to host api.k.sohu.com left intact
curl: (52) Empty reply from serverClosing connection 0
打开nginx debug 日志可以看到
client sent too large header field while processing HTTP/2 connection
这是因为HTTP2有一套自己的优化参数, 主要跟两个参数有关:
http2_max_header_size 和 http2_max_field_size
http2_max_field_size 是HPACK压缩的header大小(H2的特性, 头部压缩), 默认值4k
http2_max_header_size HPACK解压后的header大小,默认16k
需要特别留意的是, 1.19.7版本以后统一使用large_client_header_buffers 来控制
这几个参数都可以根据单独server 来使用的
http://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_field_size
参考文档: