Hello các bạn, sau khi các bạn code xong ứng dụng nodejs chạy trên local, các bạn thấy thích vc và muốn public nó lên mạng cho bạn bè cùng xem thì đây chính là hướng dẫn mà bạn cần. Thao tác public web lên mạng có tên kỹ thuật là deploy code của bạn lên, để mọi người có thể truy cập được. Show
B1: mua vps, login vào vps dùng ssh key hoặc user pass (dùng bitvise ssh client)B2: Sau khi đã ở trong cửa sổ termial của vps (nên dùng ubuntu 18.04) thì cần cài node jsNên cài phiên bản > 10 sudo apt install curl curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - sudo apt install nodejs Check cài đặt thành công bằng 2 câu lệnh node -v npm -v (nếu không có thì gõ apt install npm) Bước 3: tạo một server node js đơn giản dùng express# create folder simpleServer # go inside cd simpleServer # create package.json # install Express.js Tạo và mở file server.js (vim server.js) rồi dán đống này vào, nội dung đống này là tạo một server node đơn giản hello world bằng express const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send("Hello World!"); }); const port = 3000; const server = app.listen(port, () => { console.log(`Listening on http://localhost:${port}`); }); Sau đó bạn thử lên <YourVPSIpAddress>:3000, khi đó bạn sẽ thấy hello world tức là đã thành công Bước 4: cài đặt PM2+ sau bước 3 bạn đã đã có thể vào web của mình, nhưng chỉ có điều khi bạn tắt của sổ terminal đí, web bạn cũng down luôn. Chúng ta cần vài tool để giữ cho web bạn luôn alive. Đó là PM2 Cài đặt PM2 # globally install PM2 # check if installed properly pm2 -V ==> 2.10.4 + pm2 sẽ làm server của chúng ta chạy ngầm và nếu nó bị crash, pm2 sẽ tự reset lại server cho chúng ta + Để show tất cả các process mà pm2 đang chạy dùng câu lệnh + Để xóa một process ra khỏi danh sách process pm2 delete tên_process (tên lấy ở trong pm2 ls) + Để ngừng, bắt đầu hoặc khởi động lại một process pm2 stop app pm2 start app pm2 restart app trong đó app là tên của process Bước 5: cài đặt Nginxnginx sẽ giúp điều hướng người dùng, tối ưu hiệu suất server, ví dụ có 10 người dùng truy cập cùng nội dung, thì nginx sẽ gom những người đó lại rồi trả về cùng một kết quả. Nói chung nó nhiều chức năng, mình cũng chỉ học thoáng qua nên nhớ vậy, chi tiết về nginx chắc nao mình viết bài khác sau sudo apt-get install nginx # check if installed sudo Sau khi cài xong nginx, chúng ta cần tạo file cấu hình cho server cd /etc/nginx/sites-available Tạo một file mới, đặt tên tùy bạn, nhưng nên đặt tên theo tên folder chứa code của bạn trong file này, dán đoạn này vào server { listen 80; server_name <YourVPSIpAddress>; location / { proxy_pass http://localhost:3000/; } } đại ý của code trên là nếu ai vào trực tiếp ip của bạn, không qua port 3000 thì nó sẽ đẩy trực tiếp sang port 3000 Đến đây bạn cần làm 3 dòng code nữa để enable file config của bạn 1/ check xem file configure okie chưa 2/ enable file configure sudo ln -s /etc/nginx/sites-available/nghiahsgs /etc/nginx/sites-enabled 3/ restart nginx sudo systemctl restart nginx Bước tiếp theo cần làm đó là tạo tường lửa và tạo https cho web bạn nhưng các bạn có thể dùng ở sau bước pm2 là đủ cho một sản phẩm demo, không cần bước nginx cũng được Hello các bạn, sau khi các bạn code xong ứng dụng react chạy trên local, các bạn thấy thích vc và muốn public nó lên mạng cho bạn bè cùng xem thì đây chính là hướng dẫn mà bạn cần. Thao tác public web lên mạng có tên kỹ thuật là deploy code của bạn lên, để mọi người có thể truy cập được. Về cơ bản nó khá giống với bài hướng dẫn deploy ứng dụng node js lên vps của mình B1: mua vps, login vào vps dùng ssh key hoặc user pass (dùng bitvise ssh client)B2: Sau khi đã ở trong cửa sổ termial của vps (nên dùng ubuntu 18.04) thì cần cài node jsNên cài phiên bản > 10 https://gist.github.com/nghiahsgs/74b509d71d155d84310cbb571df096b6 Check cài đặt thành công bằng 2 câu lệnh node -v npm -v Bước 3: tạo một app đơn giản dùng create-react-appnpx create-react-app test-react các bạn gõ câu lệnh trên đẻ tạo ra một app react đơn giản, hello worl của react. Sau khi tạo xong project, các bạn chạy project bằng câu lệnh npm start Bây giờ các bạn mở trình duyệt lên và vào địa chỉ <your_vps_ip>:port để xem app react của các bạn. Vd sẽ là 123.146.789:3000 (3000 là port mặc định của react) Bước 4: cài đặt PM2+ sau bước 3 bạn đã đã có thể vào web của mình, nhưng chỉ có điều khi bạn tắt của sổ terminal đí, web bạn cũng down luôn. Chúng ta cần vài tool để giữ cho web bạn luôn alive. Đó là PM2 Cài đặt PM2 # globally install PM2 https://gist.github.com/nghiahsgs/fffbd857347ac61a6cf5d2f84d4ae876 # check if installed properly pm2 -V ==> 2.10.4 + pm2 sẽ làm server của chúng ta chạy ngầm và nếu nó bị crash, pm2 sẽ tự reset lại server cho chúng ta https://gist.github.com/nghiahsgs/930d9624f680e247312d2ac6643558a8 + Để show tất cả các process mà pm2 đang chạy dùng câu lệnh pm2 ls + Để xóa một process ra khỏi danh sách process pm2 delete tên_process (tên lấy ở trong pm2 ls) + Để ngừng, bắt đầu hoặc khởi động lại một process https://gist.github.com/nghiahsgs/7825320614e5de786f638e07fda4fdd0 trong đó app là tên của process |