在某业务中,调用kong网关访问某服务时,因带的token比较长,抛出了Request Header Fields Too Large,返回码431
首先说431产生的直接原因,并不像网上百度到的说因为client_header_buffer_size默认的1k不够,因为如果它不够还会去看large_client_header_buffers设置的值,正常情况下不会超过默认的 4 * 8k,即使超过了也是报400错误,所以报431基本都是后端的服务抛出的,检查下后端实际服务使用的框架,使用的什么http包,看看其中是否有默认的head大小,比如go的fasthttp中ReadBufferSize的值,默认是4k,超过了就会返回431,java框架也有相关的设置,所以Request Header Fields Too Large 431别再一味的去看nginx或kong了,kong只有再接受grpc的时候本身才可能会抛出431。如果是运维请联系后端服务的相应研发。