事件的起因是这样的。一般订单页面会有根据单号去查询的功能,但是客户想一次录入多个单号然后查询多条单据,前端传入的单号可以使用逗号或者空格拼接,本来这个功能也算正常,但是客户在实际使用的时候,居然一次传了几百个单号......
不料这下出事了
我一看这错误,也没细想,那肯定是业务服务的请求头大小不满足条件呀,果断去改了application.yml
server:
max-http-header-size: 1MB
max-http-header-size的默认大小为8KB,正常情况下是够用的。为以防万一,还特意本地调试了下,非常OK。
自信满满地发布了测试环境并通知了测试,未曾想打脸只在一瞬间,依然报错!!!???
有点东西,我认真了,有种你别跑。我又看了眼报错信息,发现nginx的字样,恍然大悟。赶忙去修改了nginx.conf,在http块下新增如下配置
client_header_buffer_size 1m;
这个属性的默认值为1KB。使用以下命令重新加载配置
nginx -s reload
心想这下应该可以了吧,来来来测试。
呵呵,nginx的报错没了,来了个新的家伙:Request failed with status code 413.
再次陷入困境,还有哪里有问题?苦思冥想,我是不是还有个Gateway网关呢?!跟业务服务一样加上max-http-header-size配置后,满心欢喜地去发布,然后偷偷去点了下。WTF,居然还还还不行,这下真的是被逼入绝境了。
开始各种百度查资料,资料也并不多,碰碰运气吧。经过不懈地努力搜寻,抱着试一试的态度,在Gateway的application.yml中加上了下面的配置
server:
netty:
max-initial-line-length: 1MB
哈哈哈,Oh yeah!
希望可以帮到大家,有问题大家可以一起交流学习!