如何设置 Node 的 header size

如何设置 Node 的 header size

Header size 是什么

每当任何客户端向服务器发送请求时,它也会发送一些头信息,所有服务器都对头缓冲区有一些预定义的限制。如果头缓冲区大小超过预定义的限制服务器,它将拒绝客户端请求,NodeJS 从 v6.15.0、v8.14.0、v10.14.0、v11.3.0 版本显著减小了(从80KB到8KB)头缓冲区的大小。

为什么需要增加 header size

可能很少有情况需要增加 header size,下面是可能需要调整 header size 的原因

  1. 应用集成了多种服务,如 google analytics 等,可能增加 header size 。
  2. 如果使用一些用户校验方式,如 JWT,它的 token 长度可能会使 header size 超过限制。
  3. 请求中有许多自定义 header。
  4. cookies 数据太大。

如何修改 header size

  1. 可修改 npm script,增加 max-http-header-size 选项,也可直接在命令行运行该 script。

    1
    2
    3
    scripts:{
    node --max-http-header-size=16000 server.js
    }
  2. 如果使用 pm2,可增加 node-args 参数。

    1
    pm2 start server.js --node-args="--max-http-header-size=16000"
  3. 如果使用 pm2 配置文件启动项目, 可增加 node_args 选项。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    module.exports = {
    apps : [{
    name: "app",
    script: "./server.js",
    node_args: "--max-http-header-size=16000"
    env: {
    NODE_ENV: "development",
    },
    env_production: {
    NODE_ENV: "production",
    }
    }]
    }
# Node

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×