Header size 是什么
每当任何客户端向服务器发送请求时,它也会发送一些头信息,所有服务器都对头缓冲区有一些预定义的限制。如果头缓冲区大小超过预定义的限制服务器,它将拒绝客户端请求,NodeJS 从 v6.15.0、v8.14.0、v10.14.0、v11.3.0 版本显著减小了(从80KB到8KB)头缓冲区的大小。
为什么需要增加 header size
可能很少有情况需要增加 header size,下面是可能需要调整 header size 的原因
- 应用集成了多种服务,如 google analytics 等,可能增加 header size 。
- 如果使用一些用户校验方式,如 JWT,它的 token 长度可能会使 header size 超过限制。
- 请求中有许多自定义 header。
- cookies 数据太大。
如何修改 header size
可修改 npm script,增加
max-http-header-size
选项,也可直接在命令行运行该 script。1
2
3scripts:{
node --max-http-header-size=16000 server.js
}如果使用 pm2,可增加 node-args 参数。
1
pm2 start server.js --node-args="--max-http-header-size=16000"
如果使用 pm2 配置文件启动项目, 可增加 node_args 选项。
1
2
3
4
5
6
7
8
9
10
11
12
13module.exports = {
apps : [{
name: "app",
script: "./server.js",
node_args: "--max-http-header-size=16000"
env: {
NODE_ENV: "development",
},
env_production: {
NODE_ENV: "production",
}
}]
}