Bước 1: Cài đặt PM2
Để cài đặt PM2 các bạn dùng lệnh sau:
npm install pm2 -g
Bước 2: Quản lý ứng dụng trong MP2
Khởi động MP2 bằng lệnh sau:
PORT=cong_ung_dung pm2 start duong_dan_ung_dung --name ten_mien_ung_dung:cong_ung_dung
Ví dụ:PORT=4000 pm2 start /home/api.topweb.store/public_html/ –name api.topweb.store:4000
Một số lệnh cơ bản để quản lý ứng dụng bằng PM2 như sau:
pm2 status # xem danh sách các process PM2 đang quản lý
pm2 show id # xem chi tiết process có id vừa tạo trên PM2
pm2 monit # giao diện tương tác trên console để theo dõi các app
pm2 logs [<id>] # nếu không truyền id PM2 sẽ hiển thị log của tất cả app. Nếu có id thì hiển thị log của app id đó thôi
pm2 stop [all/<id>] # ngừng tất cả app đang chạy hoặc theo id
pm2 restart [all/<id>] # khởi động lại tất cả app đang chạy hoặc theo id
pm2 reload [all/<id>] # tương tự pm2 restart và PM2 bảo đảm restart lần lượt từng process để giảm thời gian ngừng hệ thống
pm2 delete [all/<id>] # xoá app khỏi danh sách PM2 quản lý
Bước 3: Thiết lập Cluster mode
Để tận dụng tối đa CPU của server chúng ta cấu hình cho PM2 để tạo ra nhiều process bằng đúng với số lượng core CPU của server bằng tham số -i max
. Hoặc thay max
bằng con số mà bạn muốn cluster của mình có bao nhiêu process
PORT=cong_ung_dung pm2 start duong_dan_ung_dung -i max --name ten_mien_ung_dung:cong_ung_dung
Ví dụ:PORT=4000 pm2 start /home/api.topweb.store/public_html/ -i max –name api.topweb.store:4000
Bước 4: Cấu hình Log rotate
Cài đặt bằng lệnh sau:
pm2 install pm2-logrotate
Cấu hình bằng lệnh sau:
pm2 set pm2-logrotate:<param> <value>
Một số lệnh cấu hình Log rotate
pm2 set pm2-logrotate:max_size 1K (1KB)
pm2 set pm2-logrotate:compress true (compress logs when rotated)
pm2 set pm2-logrotate:rotateInterval '*/1 * * * *' (force rotate every minute)
Chi tiết các bạn có thể xem tại đây: https://github.com/keymetrics/pm2-logrotate#configure
Bước 5: Cấu hình tự chạy PM2 khi khởi động hệ điều hành
Khi hệ điều hành khởi động lại, để PM2 tự động chạy chúng ta dùng lệnh sau
pm2 startup
pm2 save
Chúng các bạn thành công!