Triển khai nodejs nginx

Có nhiều cách để cài đặt NodeJS, nhưng tôi thích NVM (Trình quản lý phiên bản nút). Chúng ta sẽ cài đặt phiên bản 10

Chúng ta sẽ tải tập lệnh cài đặt với curl (hoặc sử dụng wget). Thao tác này sẽ tạo thư mục. nvm bên trong thư mục người dùng của chúng ta. Các bên trong thư mục này sẽ lưu trữ bản cài đặt NodeJS của bạn

# câu lệnh này down script với curl
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
# hoặc sử dụng wget
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

Bây giờ hãy đăng xuất và đăng nhập lại. Sau đó, bạn sẽ có thể sử dụng lệnh nvm

# check đã cài đặt chưa
nvm --version
==> 0.33.11
# danh sách version có thể cài
nvm ls-remote
# ở đây chúng ta chọn v10 và cài đặt
nvm install v10.4.1
# kiểm tra xem đã cài đặt node chưa
node --version
==> v10.4.1

NVM là công cụ mạnh mẽ, cho phép bạn cài đặt nhiều phiên bản NodeJS và chuyển đổi giữa chúng theo ý muốn. Bạn có thể sử dụng lệnh “help” hoặc xem trang github của họ để tìm hiểu thêm

# check more nvm usage
nvm --help

Tạo máy chủ cơ bản với Express

# đi đến thư mục user
cd /home/lukas
# tạo folder simpleServer
mkdir simpleServer
# đi vào trong
cd simpleServer
# tạo package.json
npm init -y
# cài đặt Express.js
npm install express

Tạo tệp với văn bản này bên trong nó và lưu. Bạn có thể sử dụng nano hoặc bất kỳ công cụ nào khác

# mở nano
nano server.js
# để save, nhấn Ctrl + X ==> Y ==> Enter
____5
# start server
node server.js
==> Listening on http://localhost:3000

Nếu bạn truy cập <ĐịaChỉIPVPSCủaBạn>: 3000, bạn sẽ thấy “Hello World!” bên trong trình duyệt của bạn.

PM2 trên VPS

Nếu bây giờ bạn đóng SSH client của mình, trang web của bạn sẽ tiếp tục hoạt động. Chúng ta cần một số công cụ sẽ giữ cho máy chủ của chúng ta “sống”. Chào PM2

# cài đặt PM2
npm install pm2 -g
# check version
pm2 -V
==> 2.10.4

PM2 sẽ làm cho máy chủ của chúng ta chạy dưới nền và nếu nó bị lỗi, PM2 sẽ tự động khởi động lại

sudo apt-get update
sudo apt-get upgrade
0

Đặt PM2 tự khởi động trên VPS

Nếu bây giờ chúng ta khởi động lại VPS, máy chủ của chúng ta sẽ không khởi động được. Chúng ta phải kích hoạt nó trước. Tài liệu liên quan tại đây

sudo apt-get update
sudo apt-get upgrade
1

Tương tự như NVM, PM2 là một công cụ mạnh mẽ có thể làm được nhiều điều hơn thế. Kiểm tra tài liệu chính thức và ra lệnh “trợ giúp”

Hôm nay LPTech sẽ hướng dẫn bạn cách cài đặt Tên miền cho ứng dụng NodeJS và AngularJS bằng Nginx Proxy cơ bản cài đặt trên Centos 7. Áp dụng cho các trang web đang chạy Node ở Port 3000 muốn cấu hình Domain ở Port 80

NGINX làm Proxy cho ứng dụng NodeJS và AngularJS

Reverse Proxy là một loại máy chủ proxy trung gian giữa máy chủ và máy khách gửi tới các yêu cầu. Nó kiểm soát yêu cầu của khách hàng, nếu hợp lệ, sẽ chuyển đến các dịch vụ thích ứng. Trái ngược với proxy chuyển tiếp, là trung gian cho các máy khách liên hệ với nó được liên lạc với bất kỳ máy chủ nào, Reverse proxy là trung gian cho các máy chủ liên hệ với nó được liên lạc bởi bất kỳ máy khách nào

Ví dụ. Bạn đang thiết kế trang web cho khách hàng chạy bằng NodeJS, AngularJS và hiện tại nó chạy trên Service Node ở Port 3000 (Node) nhưng bạn không biết cách nào để cấu hình miền chạy ở Port 80 cả, vì mỗi lần bạn sử dụng phải không? . miền. com. 3000 www.domain.com:3000   thật phiền phức và khó chịu, giờ bạn chỉ muốn truy cập bằng tên miền  www. miền. com mà không cần đến . 3000  thì lúc này bạn cần đọc tiếp bài viết này của LPTech rồi đó, bài này tôi sẽ hướng dẫn bạn giải quyết vấn đề như ví dụ nêu trên.

Triển khai nodejs nginx
Triển khai nodejs nginx

Nhiều ứng dụng web hiện đại được viết bằng NodeJS hoặc Angular có thể chạy với máy chủ độc lập của riêng họ nhưng họ thiếu một số tính năng nâng cao như khả năng tải, bảo mật và tăng tốc mà hầu hết các ứng dụng này yêu cầu . NGINX với các tính năng nâng cao của nó có thể hoạt động như một Reverse Proxy khi phục vụ yêu cầu cho NodeJS hoặc ứng dụng Angular

Máy chủ Reverse Proxy cho NGINX

Trong hướng dẫn này, chúng ta sẽ khám phá cách NGINX có thể được sử dụng như một máy chủ Reverse Proxy cho Node hoặc ứng dụng Angular. Sơ đồ dưới đây cung cấp cho bạn tổng quan về cách máy chủ đảo ngược proxy hoạt động và xử lý các yêu cầu của máy khách và gửi phản hồi

Ứng dụng NodeJS

Giả sử bạn đã cài đặt NGINX trong môi trường của mình, hãy để chúng tôi tạo một ứng dụng NodeJS mẫu sẽ được truy cập thông qua proxy ngược NGINX. Để bắt đầu, hãy thiết lập môi trường Node trong hệ thống nằm trong mạng riêng của bạn

Cài đặt nút

Trước khi tiến hành cài đặt NodeJS và phiên bản mới nhất của npm (trình quản lý Node), hãy kiểm tra xem nó đã được cài đặt hay chưa

# check đã cài đặt chưa
nvm --version
==> 0.33.11
# danh sách version có thể cài
nvm ls-remote
# ở đây chúng ta chọn v10 và cài đặt
nvm install v10.4.1
# kiểm tra xem đã cài đặt node chưa
node --version
==> v10.4.1
0

Create application Node first

Khi môi trường NodeJS đã sẵn sàng, hãy tạo một ứng dụng ví dụ bằng ExpressJS. Do đó, tạo một thư mục cho Node ứng dụng và cài đặt ExpressJS

# check đã cài đặt chưa
nvm --version
==> 0.33.11
# danh sách version có thể cài
nvm ls-remote
# ở đây chúng ta chọn v10 và cài đặt
nvm install v10.4.1
# kiểm tra xem đã cài đặt node chưa
node --version
==> v10.4.1
1

Bây giờ bằng cách sử dụng trình soạn thảo văn bản yêu thích của bạn, tạo ứng dụng. js và thêm nội dung sau vào đó

# check đã cài đặt chưa
nvm --version
==> 0.33.11
# danh sách version có thể cài
nvm ls-remote
# ở đây chúng ta chọn v10 và cài đặt
nvm install v10.4.1
# kiểm tra xem đã cài đặt node chưa
node --version
==> v10.4.1
2

Chạy ứng dụng Nút bằng lệnh sau

# check đã cài đặt chưa
nvm --version
==> 0.33.11
# danh sách version có thể cài
nvm ls-remote
# ở đây chúng ta chọn v10 và cài đặt
nvm install v10.4.1
# kiểm tra xem đã cài đặt node chưa
node --version
==> v10.4.1
3

Tạo truy vấn cuộn tới cổng số 3000 để xác nhận rằng ứng dụng đang chạy trên máy chủ cục bộ

# check đã cài đặt chưa
nvm --version
==> 0.33.11
# danh sách version có thể cài
nvm ls-remote
# ở đây chúng ta chọn v10 và cài đặt
nvm install v10.4.1
# kiểm tra xem đã cài đặt node chưa
node --version
==> v10.4.1
4

Tại thời điểm này, ứng dụng NodeJS sẽ chạy trong máy chủ Reverse. Ở bước cuối cùng, chúng tôi sẽ cấu hình NGINX để hoạt động như một proxy Reverse cho ứng dụng Node ở trên. Hiện tại, chúng ta hãy tiến hành tạo một AngularJS Next, các bước được đưa ra dưới đây

góc cạnhJS

Angular là một khung JavaScript khác để phát triển các ứng dụng web bằng cách sử dụng bản trong. Nói chung, một AngularJS được truy cập thông qua máy chủ độc lập được vận chuyển cùng với nó. Nhưng có một số nhược điểm của việc sử dụng máy chủ độc lập này trong môi trường sản xuất sản phẩm, một proxy ngược được đặt trước một AngularJS bên cạnh để phục vụ nó tốt hơn

Thiết lập môi trường góc cạnh

Vì Angular là một khung JavaScript, nên nó cần phải có Nodejs với phiên bản > 8,9 được cài đặt trong hệ thống. Do đó, trước khi tiến hành cài đặt CLIAngular, hãy nhanh chóng thiết lập môi trường Node bằng cách phát lệnh sau trong thiết bị đầu cuối

# check đã cài đặt chưa
nvm --version
==> 0.33.11
# danh sách version có thể cài
nvm ls-remote
# ở đây chúng ta chọn v10 và cài đặt
nvm install v10.4.1
# kiểm tra xem đã cài đặt node chưa
node --version
==> v10.4.1
5

Bây giờ tiến trình cài đặt Angular CLI giúp chúng tôi tạo dự án, tạo mã ứng dụng và mã thư viện cho bất kỳ AngularJS nào

# check đã cài đặt chưa
nvm --version
==> 0.33.11
# danh sách version có thể cài
nvm ls-remote
# ở đây chúng ta chọn v10 và cài đặt
nvm install v10.4.1
# kiểm tra xem đã cài đặt node chưa
node --version
==> v10.4.1
6

Thiết lập cần thiết cho môi trường Angular đã hoàn tất. Trong bước tiếp theo, chúng tôi sẽ tạo ra một AngularJS

Tạo AngularJS

Tạo một ứng dụng góc bằng lệnh CLI sau

# check đã cài đặt chưa
nvm --version
==> 0.33.11
# danh sách version có thể cài
nvm ls-remote
# ở đây chúng ta chọn v10 và cài đặt
nvm install v10.4.1
# kiểm tra xem đã cài đặt node chưa
node --version
==> v10.4.1
7

Thay đổi thư mục vừa tạo và chạy ứng dụng web bằng cách chỉ định tên máy chủ và số cổng

# check đã cài đặt chưa
nvm --version
==> 0.33.11
# danh sách version có thể cài
nvm ls-remote
# ở đây chúng ta chọn v10 và cài đặt
nvm install v10.4.1
# kiểm tra xem đã cài đặt node chưa
node --version
==> v10.4.1
8

Thực hiện truy vấn curl đến cổng số 3000 để xác nhận rằng AngularJS đang chạy trên localhost

# check đã cài đặt chưa
nvm --version
==> 0.33.11
# danh sách version có thể cài
nvm ls-remote
# ở đây chúng ta chọn v10 và cài đặt
nvm install v10.4.1
# kiểm tra xem đã cài đặt node chưa
node --version
==> v10.4.1
9

Tại thời điểm này, AngularJS sẽ chạy trong máy chủ Reverse của bạn. Trong bước tiếp theo, chúng tôi sẽ định cấu hình NGINX để hoạt động như một proxy ngược cho AngularJS trên

Định cấu hình NGINX làm proxy ngược

Điều hướng đến thư mục cấu hình máy chủ ảo NGINX và tạo một máy chủ khối sẽ hoạt động như một proxy ngược. Hãy nhớ hệ thống nơi bạn cần cài đặt phải được cài đặt NGINX trước khi có thể truy cập qua Internet, tức là IP Public được gắn vào hệ thống

Bạn có thể đọc thêm về NGINX Reverse Proxy ở trang chính thức của Nginx. https. // tài liệu. nginx. com/nginx/admin-guide/web-server/reverse-proxy/

# check đã cài đặt chưa
nvm --version
==> 0.33.11
# danh sách version có thể cài
nvm ls-remote
# ở đây chúng ta chọn v10 và cài đặt
nvm install v10.4.1
# kiểm tra xem đã cài đặt node chưa
node --version
==> v10.4.1
10

Lệnh proxy_pass trong cấu hình trên làm cho máy chủ chặn proxy ngược. Tất cả lưu lượng truy cập đến miền  node. kỹ thuật số. asia và những kết quả khớp với khối vị trí gốc (/) sẽ được chuyển tiếp đến  https. // RIÊNG TƯ_IP. 3000 nơi Node hoặc AngularJS của bạn đang chạy.

NGINX Reverse Proxy cho cả NodeJS và AngularJS?

Block Server ở trên sẽ hoạt động như một proxy ngược cho ứng dụng Node hoặc AngularJS. Để phục vụ cả Node và AngularJS cùng một lúc bằng NGINX proxy ngược, chỉ cần chạy chúng ở hai số cổng khác nhau nếu bạn định sử dụng cùng một hệ thống cho cả hai

Cũng có thể sử dụng hai máy chủ Đảo ngược riêng biệt để chạy ứng dụng Nút và góc. Hơn nữa, bạn cũng cần tạo một khối máy chủ NGINX khác với các giá trị khớp với server_name và proxy_passchỉ thị

Kiểm tra bất kỳ lỗi cú pháp nào trong khối máy chủ ở trên và cho phép tương tự. Cuối cùng, hãy tải xuống NGINX để áp dụng các cài đặt mới

# check đã cài đặt chưa
nvm --version
==> 0.33.11
# danh sách version có thể cài
nvm ls-remote
# ở đây chúng ta chọn v10 và cài đặt
nvm install v10.4.1
# kiểm tra xem đã cài đặt node chưa
node --version
==> v10.4.1
11

Giờ hãy duyệt web yêu thích của bạn tới https. //nút. kỹ thuật số. asia, bạn sẽ được chào đón bằng một thông báo chào mừng từ ứng dụng Node hoặc Angular

Triển khai nodejs nginx
Triển khai nodejs nginx

Các lỗi có thể xảy ra và cách xử lý

1. Không chạy được Angular dưới Nền phải treo SSH

Vì Node phải kết hợp tệp và xây dựng các Nhà cung cấp khi chạy lệnh

# check đã cài đặt chưa
nvm --version
==> 0.33.11
# danh sách version có thể cài
nvm ls-remote
# ở đây chúng ta chọn v10 và cài đặt
nvm install v10.4.1
# kiểm tra xem đã cài đặt node chưa
node --version
==> v10.4.1
12

Hệ thống sẽ treo màn hình ở chế độ Trình xử lý hoặc Đồng hồ mặc dù có chạy thêm --prod thì vấn đề là không thoát khỏi màn hình đã được, tắt Bảng điều khiển là dừng ứng dụng luôn

Sử dụng PM2 và Angular CLI để xử lý

# check đã cài đặt chưa
nvm --version
==> 0.33.11
# danh sách version có thể cài
nvm ls-remote
# ở đây chúng ta chọn v10 và cài đặt
nvm install v10.4.1
# kiểm tra xem đã cài đặt node chưa
node --version
==> v10.4.1
13

Khởi động PM2 cho dự án Angular

# check đã cài đặt chưa
nvm --version
==> 0.33.11
# danh sách version có thể cài
nvm ls-remote
# ở đây chúng ta chọn v10 và cài đặt
nvm install v10.4.1
# kiểm tra xem đã cài đặt node chưa
node --version
==> v10.4.1
14

Triển khai nodejs nginx
Triển khai nodejs nginx

Lưu ý. Default when running Angular by PM2, port not also as 3000 as on more that is port 4200

2. Vào web lỗi Cổng xấu và Hết thời gian chờ cổng 504

Config Nginx Error. Như đã nói trên PM2 thì Port không chạy 3000 nữa là 4200 và Máy chủ cũng không phải là IP Nữa mà là localhost. 4200 thì phải thay đổi cấu hình Nginx lại 1 chút

# check đã cài đặt chưa
nvm --version
==> 0.33.11
# danh sách version có thể cài
nvm ls-remote
# ở đây chúng ta chọn v10 và cài đặt
nvm install v10.4.1
# kiểm tra xem đã cài đặt node chưa
node --version
==> v10.4.1
15

Tóm tắt

Đó là tất cả để cấu hình NGINX proxy ngược cho ứng dụng NodeJS hoặc Angular. Bây giờ bạn có thể tiến hành thêm chứng chỉ SSL miễn phí như Let Encrypt để bảo mật ứng dụng của mình bằng HTTPS

Triển khai nodejs nginx

Thông tin liên hệ

Nếu bạn có thắc mắc gì, có thể gửi yêu cầu cho chúng tôi, và chúng tôi sẽ liên hệ lại với bạn sớm nhất có thể