Friday , May 3 2024

Hướng dẫn cài đặt PM2 + Node.js trên server Production Env

PM2 là một mã nguồn mở miễn phí dùng cho Node.js (Nodejs), dùng để quản lý các tiến trình trong ứng dụng Nodejs của bạn. PM2 hoạt động trên cả Linux, MacOS và Windows. PM2 hỗ trợ giao diện theo dõi các tiến trình của ứng dụng, quản lý hiệu quả các micro-services/processes.

PM2 giúp cho ứng dụng của bạn “luôn chạy“, với tính năng auto start và có thể được kích hoạt khởi động cùng hệ thống (system boot), do đó cho phép các cấu hình hoặc kiến trúc High Availability (HA).

Đáng chú ý, PM2 cho phép bạn chạy các ứng dụng của mình ở cluster mode mà không thực hiện bất kỳ thay đổi nào trong code (điều này cũng phụ thuộc vào số lượng 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 (app logs), v.v.

Ngoài ra, PM2 cũng hỗ trợ các frameworks Nodejs như Express, Adonis Js, Sails, Hapi…  mà không cần có bất kỳ thay đổi nào về code. PM2 đang được sử dụng bởi các công ty, tập đoàn lớn như IBM, Microsoft, PayPal, v.v.

Trong bài viết này, tôi sẽ hướng dẫn cách cài đặt và sử dụng PM2 để chạy (deploy) các ứng dụng Nodejs trên môi trường Production Server. Tôi sẽ tạo một ứng dụng để minh họa một số tính năng cơ bản của PM2 để bạn dễ dàng bắt đầu với nó.

Bước 1: Cài đặt Nodejs và NPM trên Linux

Trước khi bắt đầu chúng ta hãy chạy cập nhật hệ thống và cài đặt các gói cần thiết trước:

Để cài đặt Node.jsNPM bạn cần tải về gói cài đặt sau đó chạy lệnh cài đặt theo hướng dẫn bên dưới. Mình thấy bản Node.js v16.x chạy ổn định nên mình hướng dẫn cài bản này nhé.

Đối với Debian/Ubuntu

 Đối với CentOS/RHEL và Fedora

Sau khi cài đặt xong bạn chạy lệnh kiểm tra phiên bản hiển thị tương tự bên dưới là thành công rồi nhé.

Bước 2: Tạo ứng dụng Nodejs

Bây giờ, chúng ta sẽ tạo ứng dụng Nodejs chạy thử (giả sử cả phía client và admin đều sử dụng chung batabase), các micro-services sẽ chạy trên cổng 3000 và 3001.

Tiếp theo, hãy dán đoạn mã sau vào file /var/www/html/app/server.js (hãy thay địa chỉ IP 192.168.43.31 thành địa chỉ IP máy chủ của bạn)

Và dán đoạn mã sau vào file /var/www/html/adminside/server.js (hãy thay địa chỉ IP 192.168.43.31 thành địa chỉ IP máy chủ của bạn)

Lưu lại và thoát.

Bước 3: Cài đặt PM2 Product Process Manager trên Linux

Cài đặt phiên bản mới nhất của PM2 bằng cú pháp sau:

Với môi trường Development thông thường bạn sẽ chạy ứng dụng bằng cách này:

Với môi trường Production bạn đã cài PM2 thì bạn sẽ chạy ứng dụng bằng cách này:

(Có thể bạn sẽ không cần sử dụng 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 read và write).

Bước 4: Sử dụng và Quản lý PM2 trên Linux

Để chạy ứng dụng ở cluster mode thì sử dụng -i để chỉ định số lượng process:

Để xem danh sách toàn bộ tiến trình (process/mircro-services) bạn sử dụng lệnh sau:

Để theo dõi nhật ký, số liệu tùy chỉnh, xử lý thông tin từ tất cả các quy trình bằng cách chạy lệnh sau:

Để xem chi tiết của một tiến trình Node như được hiển thị, sử dụng ID hoặc name

Sau đây là danh sách một số lệnh quản lý tiến trình phổ biến mà bạn nên lưu ý:

Để quản lý nhật ký ứng dụng, hãy sử dụng các lệnh sau:

Để quản lý tiến trình PM2, hãy sử dụng các lệnh sau:

Bước 5: Truy cập Node Apps từ trình duyệt web

Mặc định bạn sẽ truy cập được luôn, nhưng đôi khi 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 máy khách kết nối với các ứng dụng như được hiển thị.

Sau đó, truy cập ứng dụng của bạn từ trình duyệt web bằng các URL sau:

Cuối cùng nhưng không kém phần quan trọng, PM2 là một hệ thống mô-đun tích hợp, đơn giả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-monit, v.v. – bạn cũng có thể tạo và sử dụng mô-đun riêng.

Để biết thêm thông tin hãy truy cập kho lưu trữ GitHub PM2.

Trong bài viết này, 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ỳ câu hỏi nào, hãy để lại ở bình luận bên dưới nhé.

About Ngo Thang IT

Check Also

generate ssh key and login

Hướng dẫn tạo SSH Key trên CentOS 7 và cách đăng nhập

Xin chào, bài viết này Thắng sẽ hướng dẫn mọi người biết cách tạo SSH …

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Đăng Ký Nhận Tin Qua Email

Nhận thông tin bổ ích về WordPress, Hosting, Thủ thuật website, Download miễn phí....và các phần quà hấp dẫn qua email.

* là bắt buộc