Rumah > Artikel > hujung hadapan web > Mari kita bincangkan secara mendalam tentang cara menggunakan alat pengurusan proses Node-pm2
Cara menggunakan alat pengurusan proses Node-pm2 Dalam artikel ini, kami akan bercakap tentang cara menggunakan alat pengurusan proses Node-pm2.
pm2 ialah alat pengurusan daemon yang boleh membantu anda melindungi dan mengurus aplikasi anda. Biasanya, pm2 digunakan untuk pengurusan apabila perkhidmatan itu berada dalam talian. Sebenarnya terdapat banyak perkara yang pm2 boleh lakukan, seperti memantau perubahan fail dan dimulakan semula secara automatik, pengurusan bersatu pelbagai proses, pengimbangan beban terbina dalam, sistem pengelogan, dll. Mari kita lihat cara menggunakan pm2
tutorial video nodejs,Pengajaran pengaturcaraannpm init
]
npm i pm2 -g
Seterusnya kita akan menggunakan arahan pertama pm2: dan mulakan kedua-dua program ini masing-masing
//index.js let http = require("http"); let server = http.createServer(); server.on("request", function (req, res) { console.log("------------------enter"); res.write("hello juejin"); res.end(); }); server.listen(3000, function () { console.log(`服务器启动成功,通过http://localhost:3000/进行访问`); });
//index2.js let http = require("http"); let server = http.createServer(); server.on("request", function (req, res) { console.log("------------------enter2"); res.write("hello juejin2"); res.end(); }); server.listen(3001, function () { console.log(`服务器启动成功,通过http://localhost:3001/进行访问`); });
Sudah tentu, jika anda ingin menentukan nama proses, anda boleh melakukan ini: pm2 start index.js
, jika anda ingin memantau fail perubahan, anda boleh menambah pm2 start index2.js
Tunggu
Lawati
pm2 start -n test index.js
--watch
Anda boleh lihat log yang kami cetakhttp://localhost:3000/
pm2 log
pm2 stop id/id1 id2 id3/all
pm2 delete id/id1 id2 id3/all
pm2 restart id/id1 id2 id3/all
pm2 start api.js --attach
pm2 list
pm2 monit
pm2 show [id]
Menggunakan pm2 hanya memerlukan satu arahan untuk membenarkan program kami menggunakan sepenuhnya CPU pelayan Ambil index.js sebagai contoh: pm2 start index -i max
pm2 start index -i 3
Kami semua menggunakan baris arahan untuk menguruskan contoh di atas, yang sebenarnya agak menyusahkan, pm2 menyediakan bentuk konfigurasi fail.
Kami terus menggunakan arahan untuk menjana fail konfigurasi ringkas
, ubah suai untuk menunjuk ke dua perkhidmatan kamidan kemudian kami akan proses asal Bunuh mereka semua dan laksanakan
Begitu juga, dua perkhidmatan kami dimulakanpm2 init simple
ecosystem.config.js
module.exports = { apps: [ { name: "index", script: "./index.js", }, { name: "index2", script: "./index2.js", }, ], };Berikut menyenaraikan beberapa item konfigurasi
pm2 start ecosystem.config.js
LogLog sangat penting untuk penyelesaian masalah bahagian belakang pm2 mempunyai fungsi log sendiri Contohnya, kami mengkonfigurasi parameter berkaitan log dalam fail konfigurasi di atas
ecosystem.config.js
Apabila kami memulakan projek. , log akan direkodkan dalam log
module.exports = { apps: [ { name: "index", //name script: "./index.js", //相对于pm2 start 的相对路径 cwd: "", //要启动的应用程序的目录 instances: 2, //要启动实例的数量,就是上面提到的负载 watch: true, //是否启动监听 env: { NODE_ENV: "development" }, // 将出现在您的应用程序中的 env 变量 env_xxx: { NODE_ENV: "xxx", //使用pm2注入xxx变量进行切换 }, log_date_format: "YYYY-MM-DD HH:mm Z", //日志时间格式 error_file: "./log/index-error.log", //错误文件路径 out_file: "./log/index-out.log", //输出日志文件路径 max_restarts: 10, //最大重启数 restart_delay: 4000, //重启延迟时间ms autorestart: true, //是否自动重启 cron_restart: "", //定时重启 使用cron表达式 }, { name: "index2", script: "./index2.js", }, ], };
Fungsi log PM2 sendiri tidak menyokong pemisahan log. Apabila masa berlalu, fail log akan menjadi lebih besar dan lebih besar, yang bukan sahaja akan menjejaskan prestasi, tetapi juga sangat menyusahkan untuk menyelesaikan masalah kemudian, jadi kita perlu membahagikan log. Operasi pemisahan log adalah sangat mudah Anda hanya perlu memasang pemalam
Sila ambil perhatian bahawa di sini adalah pm2 installlog_date_format: "YYYY-MM-DD HH:mm Z", //日志时间格式 error_file: "./log/index-error.log", //错误文件路径 out_file: "./log/index-out.log", //输出日志文件路径dan kemudian laksanakan pm2 conf. Anda boleh melihat konfigurasi yang berkaitan >
Terangkan maksud yang berkaitanpm2-logrotate
Compress:是否通过 gzip 压缩日志
max_size:单个日志文件的大小
retain:保留的日志文件个数
dateFormat:日志文件名中的日期格式,默认是 YYYY-MM-DD_HH-mm-ss
rotateModule:是否把 pm2 本身的日志也进行分割,
workerInterval:检查文件时间间隔
rotateInterval:设置强制分割,默认值是 0 0 * * *,意思是每天晚上 0 点分割,这里使用的是 corn 表达式,不会的可以搜索一下
如果我们想要配置也很简单,比如修改 max_size
pm2 set pm2-logrotate:max_size 1K
然后我们简单测试一下这个工具,我们先设置每个 log 文件最大 1kb
然后重启我们的项目
pm2 restart ecosystem.config.js
然后就会发现我们的日志被分割了
pm2对于node服务的管理是十分方便的,文中提到的只是其中一部分,如果你想使用pm2管理你的服务的话可以到官网pm2.io/ 进行学习
更多node相关知识,请访问:nodejs 教程!
Atas ialah kandungan terperinci Mari kita bincangkan secara mendalam tentang cara menggunakan alat pengurusan proses Node-pm2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!