PM2 là một trình quản lý quy trình cấp sản xuất tiên tiến, hiệu quả và đa nền tảng mã nguồn mở miễn phí cho Node.js một bộ cân bằng tải tích hợp. Nó hoạt động trên Linux, MacOS cũng như Windows. Nó hỗ trợ giám sát ứng dụng, quản lý hiệu quả các dịch vụ / quy trình vi mô, chạy ứng dụng ở chế độ cụm, khởi động và tắt ứng dụng duyên dáng.
Nó giữ cho ứng dụng của bạn tồn tại mãi mãi, tự động khởi động lại và có thể được bật để bắt đầu khi khởi động hệ thống, do đó cho phép High Availability (HA) cấu hình hoặc kiến trúc.
Đáng chú ý, PM2 cho phép bạn chạy các ứng dụng của mình ở chế độ cụm từ thực hiện bất kỳ thay đổi nào trong mã của bạn (điều này cũng phụ thuộc vào số lõi CPU trên máy chủ của bạn). Nó cũng cho phép bạn dễ dàng quản lý nhật ký ứng dụng và hơn thế nữa.
Ngoài ra, nó cũng có hỗ trợ đáng kinh ngạc cho chính Node.js khuôn khổ như Express, Adonis Js, Sails, Hapi và hơn thế nữa, mà không cần bất kỳ thay đổi mã nào. PM2 đang được sử dụng bởi các công ty như vậy IBM, Microsoft, PayPalvà hơn thế nữa.
Trong bài viết này, chúng tôi sẽ giải thích cách cài đặt và sử dụng PM2 chạy Nodejs trong máy chủ sản xuất Linux. Chúng tôi sẽ tạo một ứng dụng để trình bày một số tính năng cơ bản của PM2 để bạn bắt đầu với nó.
Contents
Bước 1: Cài đặt Nodejs và NPM trong Linux
Trên Debian / Ubuntu
Trên CentOS / RHEL và Fedora
Bước 2: Tạo ứng dụng Nodejs
Bước 3: Cài đặt Product Process Manager PM2 trong Linux
Bước 4: Cách sử dụng và quản lý PM2 trong Linux
Bước 5: Cách quản lý ứng dụng nút bằng PM2 trong Linux
Bước 6: Truy cập ứng dụng nút từ trình duyệt web
Bước 1: Cài đặt Nodejs và NPM trong Linux
1. Để cài đặt phiên bản mới nhất của Node.js và NPM trước tiên bạn cần kích hoạt kho lưu trữ NodeSource chính thức trong bản phân phối Linux của bạn và sau đó cài đặt Node.js và NPM như hình.
Trên Debian / Ubuntu
---------- Install Node.js v11.x ----------
$ curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
$ sudo apt-get install -y nodejs
---------- Install Node.js v10.x ----------
$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
$ sudo apt-get install -y nodejs
Copy
Trên CentOS / RHEL và Fedora
---------- Install Node.js v11.x ----------
$ curl -sL https://rpm.nodesource.com/setup_11.x | bash -
---------- Install Node.js v10.x ----------
$ curl -sL https://rpm.nodesource.com/setup_10.x | bash -
Copy
Bước 2: Tạo ứng dụng Nodejs
2. Bây giờ, hãy tạo một ứng dụng thử nghiệm (chúng tôi sẽ giả sử nó có một phía khách hàng và quản trị viên chia sẻ cùng một cơ sở dữ liệu), các microservices sẽ chạy trên các cổng 3000và 3001 tương ứng.
$ sudo mkdir -p /var/www/html/app
$ sudo mkdir -p /var/www/html/adminside
$ sudo vim /var/www/html/app/server.js
$ sudo vim /var/www/html/adminside/server.js
Copy
Tiếp theo, sao chép và dán các đoạn mã sau vào server.jss (thay thế 192.168.43.31 IP máy chủ của bạn).
##mainapp code
const http = require('http');
const hostname="192.168.43.31";
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('This is the Main App!n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
##adminside code
const http = require('http');
const hostname="192.168.43.31";
const port = 3001;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('This is the Admin Side!n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
Copy
Lưu file và thoát.
Bước 3: Cài đặt Product Process Manager PM2 trong Linux
3. Phiên bản ổn định mới nhất của PM2 có sẵn để cài đặt qua NPM như hình.
$ sudo npm i -g pm2
Copy
4. Một lần PM2 được cài đặt, bạn có thể khởi động các ứng dụng nút của mình bằng các lệnh sau.
$ sudo node /var/www/html/app/server.js
$ sudo node /var/www/html/adminside/server.js
Copy
Lưu ý rằng, trong môi trường sản xuất, bạn nên bắt đầu chúng bằng cách sử dụng PM2 như được hiển thị (bạn có thể không cần lệnh sudo nếu ứng dụng của bạn được lưu trữ ở vị trí mà người dùng bình thường có quyền đọc và ghi).
$ sudo pm2 start /var/www/html/app/server.js
$ sudo pm2 start /var/www/html/adminside/server.js
Copy
Khởi động ứng dụng Nodejs bằng PM2
Bước 4: Cách sử dụng và quản lý PM2 trong Linux
5. Để khởi động một ứng dụng ở chế độ cụm bằng cách sử dụng -i để chỉ định số lượng phiên bản, chẳng hạn.
$ sudo pm2 start /var/www/html/app/server.js -i 4
$ sudo pm2 scale 0 8 #scale cluster app to 8 processes
Copy
6. Để liệt kê tất cả ứng dụng nút của bạn (process / microservices), hãy chạy lệnh sau.
$ sudo pm2 list
Copy
Liệt kê tất cả ứng dụng nút được quản lý PM2
Liệt kê tất cả ứng dụng nút được quản lý PM2
7. Để theo dõi nhật ký, số liệu tùy chỉnh, hãy xử lý thông tin từ tất cả các quy trình bằng cách chạy lệnh sau.
$ sudo pm2 monit
Copy
Giám sát tất cả các quá trình nút
Giám sát tất cả các quá trình nút
8. Để xem chi tiết của một quy trình Node đơn lẻ như được hiển thị, sử dụng ID hoặc tên quy trình.
$ sudo pm2 show 0
Copy
Xem chi tiết về ứng dụng đơn
Xem chi tiết về ứng dụng đơn
Bước 5: Cách quản lý ứng dụng nút bằng PM2 trong Linux
9. Sau đây là danh sách một số lệnh quản lý quy trình phổ biến (đơn lẻ hoặc tất cả) mà bạn cần lưu ý.
$ sudo pm2 stop all #stop all apps
$ sudo pm2 stop 0 #stop process with ID 0
$ sudo pm2 restart all #restart all apps
$ sudo pm2 reset 0 #reset all counters
$ sudo pm2 delete all #kill and remove all apps
$ sudo pm2 delete 1 #kill and delete app with ID 1
Copy
10. Để quản lý nhật ký ứng dụng, hãy sử dụng các lệnh sau.
$ sudo pm2 logs #view logs for all processes
$ sudo pm2 logs 1 #view logs for app 1
$ sudo pm2 logs --json #view logs for all processes in JSON format
$ sudo pm2 flush #flush all logs
Copy
11. Để quản lý quy trình PM2, hãy sử dụng các lệnh sau.
$ sudo pm2 startup #enable PM2 to start at system boot
$ sudo pm2 startup systemd #or explicitly specify systemd as startup system
$ sudo pm2 save #save current process list on reboot
$ sudo pm2 unstartup #disable PM2 from starting at system boot
$ sudo pm2 update #update PM2 package
Copy
Bước 6: Truy cập ứng dụng nút từ trình duyệt web
12. Để truy cập tất cả ứng dụng nút của bạn từ trình duyệt web từ xa, trước tiên bạn cần mở các cổng sau trên tường lửa hệ thống của mình, để cho phép ứng dụng khách kết nối với các ứng dụng như được minh họa.
-------- Debian and Ubuntu --------
$ sudo ufw allow 3000/tcp
$ sudo ufw allow 3001/tcp
$ sudo ufw reload
-------- RHEL and CentOS --------
# firewall-cmd --permanent --add-port=3000/tcp
# firewall-cmd --permanent --add-port=3001/tcp
# firewall-cmd --reload
Copy
13. Sau đó, truy cập ứng dụng của bạn từ trình duyệt web bằng các URL sau:
http://198.168.43.31:3000
http://198.168.43.31:3001
Copy
Truy cập ứng dụng nút từ trình duyệt
Truy cập ứng dụng nút từ trình duyệt
Cuối cùng nhưng không kém phần quan trọng, PM2 là một hệ thống mô-đun đơn giản, được tích hợp sẵn để mở rộng các khả năng cốt lõi của nó, một số mô-đun bao gồm pm2-logrotate, pm2-webshell, pm2-server-Tram, v.v. – bạn cũng có thể tạo và sử dụng các mô-đun của riêng mình.
Để biết thêm thông tin, hãy truy cập kho lưu trữ PM2 GitHub: https://github.com/Unitech/PM2/.
PM2 là trình quản lý quy trình cấp sản xuất tiên tiến và hiệu quả cho Node.js một bộ cân bằng tải tích hợp. Trong bài viết này, chúng tôi đã hướng dẫn cách cài đặt và sử dụng PM2 để quản lý các ứng dụng Nodejs trong Linux. Nếu bạn có bất kỳ ý kiến hoặc câu hỏi nào, hãy cho 2error biết bằng cách để lại bình luận bên dưới bạn nhé!