目前,我正在使用
Node js
命令,在 Next js
内使用内置 next start
服务器启动我的项目,但我不确定它是否启用了多线程。
我的问题是,您是否建议使用内置
Node
后端或使用 自定义服务器启动
Next js
项目并使用 node clusters
启用多线程,以获得最大性能和速度?
Node 默认是单线程的,因此“下次启动”。我使用pm2集群模式,没有遇到任何问题。
要启动集群,请执行以下操作:
{
"apps": [
{
"name": "myNextApp",
"script": "node_modules/next/dist/bin/next",
"args": "start",
"cwd": "./",
"instances": "max",
"exec_mode": "cluster",
"out_file": "/var/log/myNextApp/myNextApp.log",
"error_file": "/var/log/myNextApp/myNextAppError.log",
"watch": "true"
}
]
}
请注意“script”:如果您在 Next 中使用 Typescript,则使用“node_modules/next/dist/bin/next”,此配置已有 6 个月的历史,也许您需要更改此行,请检查 pm2 文档
{
...
"scripts: {
...,
"pm2": "pm2"
},
...,
}
添加 devDependencie pm2(纱线添加 -D pm2)
要启动集群,您应该能够使用:
npm run pm2 start pm2.json
or
yarn pm2 start pm2.json
来自项目根目录
附注我对是否需要将 pm2 添加到项目 deps 有一些疑问,我认为当您使用 npm i -G 和 apt-get 安装yarn/pm2 时存在一些差异,这可能会导致更轻的配置,但我不确定...
您可以在负载均衡器后面的多个实例(例如容器)上运行 Next.js,而不是多线程和集群。它为您提供水平缩放。