클러스터 모드에서 next.js 실행하기(매우 간단함)
5602 단어 tutorialwebdevnextjsjavascript
게다가 클러스터화된 Next.js를 실행하기 위한 좋은 솔루션을 찾지 못했습니다. 모든 것이 수많은 코드로 인해 지나치게 복잡합니다.
글쎄요, (최소한 Next 12의 경우) 그것은 정말 간단합니다. 그리고 Google은 저에게 좋은 대답을 주지 않았기 때문에 오늘 혼자 조사해야 했습니다.
따라서 솔루션은 다음과 같습니다. 주로 노드
cluster
문서를 기반으로 합니다.const cluster = require('node:cluster');
const process = require('node:process');
const { cpus } = require('node:os');
const numCPUs = cpus().length;
if (cluster.isPrimary) {
console.log(`Primary ${process.pid} is running`);
// all the magic goes here.
// `setupPrimary` is altering cluster behaviour
// see docs: https://nodejs.org/api/cluster.html#clustersetupprimarysettings
cluster.setupPrimary({
// node_modules/.bin is directory for all runtime scripts,
// including `next`.
// we can work with it like with a common node package,
// so require.resolve simply gives us path for `next` CLI
exec: require.resolve('.bin/next'),
// args should skip first 2 arguments,
// "node" path and file to execute path
args: ['start', ...process.argv.slice(2)],
// just directly passing all the IO to not handle pipes
stdio: 'inherit',
// making stdout and stderr colored
shell: true,
});
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
console.log(`worker ${worker.process.pid} died`, { code, signal });
});
}
// we do not need to do "else" here as cluster will run different file
Reference
이 문제에 관하여(클러스터 모드에서 next.js 실행하기(매우 간단함)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jabher/running-nextjs-in-cluster-mode-dead-simple-2f72텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)