记一次微服务因URI太长或者request header过大时会报414 Request URI too large或400 bad request错误。
解决方案
1、修改 Nginx 配置
修改两个参数
参数一:
#client_header_buffer_size:客户端请求头缓冲区大小,
client_header_buffer_size 128k; #如果请求头总长度大于小于128k,则使用此缓冲区
参数二:
#large_client_header_buffers:请求头总长度大于128k时使用large_client_header_buffers设置的缓存区
large_client_header_buffers 4 128k;
#large_client_header_buffers 指令参数4为个数,128k为大小,默认是8k。申请4个128k。
2、修改 Gateway 和下游服务 配置
修改了Nginx后发现,还是会出现 413 错误,后来想了想是不是微服务网关也会限制请求头的长度呢,于是百度资料,果然有人遇到这个问题,原因是 spring cloud gateway 使用JWT请求时Netty限制header大小导致请求400 bad Request;按其方式修改后,访问正常
源码里面默认gateway上面的netty的默认消息头大小是8KB
修改Gateway消息头限制大小
server:
# 设置webflux netty的请求头大小为100kb
max-http-header-size: 102400
修改下游微服务的消息头限制大小
server:
# 设置spring mvc servlet的请求头大小为100kb
max-http-header-size: 102400
https://blog.csdn.net/weixin_34326179/article/details/89795003
https://blog.csdn.net/fuck487/article/details/105283752
作者:Jeebiz 创建时间:2023-02-25 01:45
最后编辑:Jeebiz 更新时间:2023-02-25 01:45
最后编辑:Jeebiz 更新时间:2023-02-25 01:45