evernote 20200618 자료입니다.
express-generator를 통하여 서비스를 만들면 다음과 같은 폴더 구조가 만들어 지는데요.
이코드와 pm2를 활용해서 무중단 배포를 수행하는 것입니다.
** kubernetes가 없는 환경에서는 유용하겠네요.

2.bin/www 수정

위코드를 아래코드로 바꾸시면 됩니다.
server.listen(port,function(){
process.send('ready');
console.log('application is listening on port ${port}');
});
server.on('error', onError);
server.on('listening', onListening);
let isDisableKeepAlive = false
app.use(function (req, res, next) {
if (isDisableKeepAlive) {
res.set('Connection', 'close');
}
next();
})
process.on('SIGINT', function () {
isDisableKeepAlive = true;
app.close(function () {
console.log('server closed');
process.exit(0);
})
})
module.exports = {
apps: [{
name: 'express-example',
script: './bin/www',
instances: 4,
exec_mode: 'cluster',
wait_ready: true,
listen_timeout: 50000,
kill_timeout: 5000
}]
}
$ pm2 start ecosystem.config.js
$ pm2 reload all
위글을 쓸때 참고 했던 글 Line Engineering
무려 4년전에는 Node.js도 같이 열심히 공부했었습니다.