- vừa được xem lúc

Cách triển khai Nodejs app cơ bản lên server dành cho beginner

0 0 15

Người đăng: thuy

Theo Viblo Asia

Bài viết sẽ hướng dẫn cách để host một Nodejs app đơn giản theo cách cơ bản nhất.

Virtual Machine (máy chủ ảo) trong bài viết được cung cấp từ nền tảng Sunteco Cloud. Độc giả có thể đăng kí tài khoản để được nhận ngay 2.000.000 miễn phí cho người dùng mới. Chi tiết xem tại https://sunteco.vn.

Bài hướng dẫn gồm 5 bước:

  • Tạo và truy cập máy chủ Sunteco Cloud
  • Tạo Nodejs app cơ bản
  • Cài đặt PM2
  • Cài đặt nginx server
  • Kiểm tra kết quả

I. Tạo và truy cập máy chủ Sunteco Cloud

Truy cập vào https://dashboard.sunteco.vn/ để tạo máy chủ ảo. Sau khi tạo xong, hệ thống Sunteco Cloud sẽ gửi password về email. Kết quả sau khi tạo xong máy chủ:

image.png

Truy cập vào máy chủ vừa tạo từ Sunteco Cloud bằng termial thông qua câu lệnh:

& ssh <server_name@public_ip>

Câu lệnh chính xác với máy chủ ảo có tên ubuntu, địa chỉ IP public là 103.9.211.71 như ảnh dưới:

image.png

II. Tạo Nodejs app cơ bản

Cài đặt nodejs và npm

$ sudo apt update
$ sudo apt install nodejs
$ sudo apt install npm

Tạo một file hello.js để chuẩn bị deploy:

$ nano hello.js

Triển khai đoạn code cơ bản như dưới đây:

const http = require('http'); const hostname = 'localhost';
const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World From Sunteco Cloud!\n');
}); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`);
});

Lưu file và exit: Ctrl + X → Y. App Nodejs sẽ listen ở port 3000. Chạy app bằng câu lệnh để kiểm tra:

$ node hello.js

Kết quả khi chạy hello.js: image.png

III. Cài đặt PM2

Cài đặt pm2 để quản lí process của nodejs app:

$ sudo npm install pm2@latest -g

Chạy nodejs app với pm2:

$ pm2 start hello.js

Sau khi start thành công với pm2, terminal sẽ hiện ra thông tin của app: image.png

IV. Cấu hình nginx server

Ở thời điểm này, nodejs app đang chạy ở localhost với port 3000. Cần cấu hình cài đặt nginx để người dùng có thể truy cập được.

Cài đặt nginx:

$ sudo apt install nginx

Tạo file config cho nodejs app với câu lệnh:

$ sudo nano /etc/nginx/sites-available/<name>

Câu lệnh chính xác với tên file cấu hình là nodeApp:

$ sudo nano /etc/nginx/sites-available/nodeApp

Những thông tin cần thiết ở file /etc/nginx/sites-available/nodeApp:

server{ server_name địa_chỉ_public_ip; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; }
}

Với máy chủ ảo cung cấp từ Sunteco Cloud có địa chỉ IP public là 103.9.211.71, nội dung file chính xác sẽ là:

image.png

Lưu file và thoát: Ctrl +X → Y

Kiểm tra xem file config đã đúng cú pháp hay chưa:

$ sudo nginx -t

Nếu file cấu hình đúng, out put sẽ là: image.png Active file config:

$ sudo ln -s /etc/nginx/sites-available/nodeApp /etc/nginx/sites-enabled

Restart nginx:

$ sudo systemctl restart nginx

V. Kết quả

Nếu tất cả 4 bước trên đều thành công, khi truy cập vào địa chỉ IP public của máy chủ bằng trình duyệt sẽ hiện ra thông tin: image.png

Bình luận

Bài viết tương tự

- vừa được xem lúc

PDF Export, cẩn thận với những input có thể truyền vào

Giới thiệu. Dạo gần đây mình tình cờ gặp rất nhiều lỗi XSS, tuy nhiên trang đó lại có sử dụng dữ liệu người dùng input vào để export ra PDF.

0 0 49

- vừa được xem lúc

Giới thiệu về AWS Batch

Khi sử dụng hệ thống cloud service, điều chúng ta thường phải quan tâm đến không chỉ là hiệu suất hoạt động (performance) mà còn phải chú ý đến cả chi phí bỏ ra để duy trì hoạt động của hệ thống. Chắn hẳn là hệ thống lớn hay nhỏ nào cũng đã từng phải dùng đến những instance chuyên để chạy batch thực

0 0 128

- vừa được xem lúc

Tìm hiểu về AWS KMS

1. AWS KMS là gì. Ở KMS bạn có thể lựa chọn tạo symetric key (khóa đối xứng) hoặc asymetric key (khóa bất đối xứng) để làm CMK (Customer Master Key). Sau khi tạo key thì có thể thiết đặt key policy để control quyền access và sử dụng key.

0 0 53

- vừa được xem lúc

AWS VPC cho người mới bắt đầu

Tuần này, tôi trình bày lại những gì tôi đã học được về Virtual Private Cloud (VPC) của Amazon. Nếu bạn muốn xem những gì tôi đã học được về AWS, hãy xem Tổng quan về DynamoDB và Tổng quan về S3. VPC là gì. Những điều cần lưu ý:.

0 0 69

- vừa được xem lúc

AWS Essentials (Phần 6): Guildline SNS Basic trên AWS

Tiếp tục với chuỗi bài viết về Basic AWS Setting, chúng ta tiếp tục tìm hiểu tiếp tới SNS (Simple Notification Service). Đây là một service của AWS cho phép người dùng setting thực hiện gửi email, text message hay push notification tự động tới mobile device dựa trên event người dùng setting phía AWS

0 0 125

- vừa được xem lúc

Sử dụng Amazon CloudFront Content Delivery Network với Private S3 Bucket — Signing URLs

Trong nhiều trường hợp, thì việc sử dụng CDN là bắt buộc. Mình đã trải nghiệm với một số CDN nhưng cuối cùng mình lựa chọn sử dụng AWS CloudFront.

0 0 105