Đây là phần 3 (cuối) của bài viết về cách deploy ứng dụng NodeJs lên VPS.
Thiết lập Nginx như một Reverse Proxy Server
Điều này sẽ giúp chuyển hướng yêu cầu từ máy khách tới các máy chủ back-end và xử lý yêu cầu này trước khi gửi đến máy chủ back-end.
Trong bước này, chúng ta sẽ cấu hình Nginx như một máy chủ proxy nghịch đảo để chuyển hướng yêu cầu từ người dùng đến ứng dụng của chúng ta đang chạy trên localhost. Chúng ta sẽ mở tệp cấu hình Nginx đã tạo ở các bước trên (với tên miền example.com) để tiếp tục cấu hình. Mở file cấu hình bằng cách chạy lệnh:
sudo nano /etc/nginx/sites-available/example.com
Trong khối server, chúng ta đã có một khối location / hiện có. Thay thế nội dung của khối đó với cấu hình sau:
...
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;
}
...
Sau đó lưu lại Ctrl + X -> Y -> Enter.
Cấu hình này nghĩa là khi người dùng truy cập vào địa chỉ https://example.com/, Nginx sẽ chuyển hướng yêu cầu đến ứng dụng của chúng ta đang chạy trên localhost với cổng 3000.
Ví dụ, nếu chúng ta có một ứng dụng Node.js đang chạy trên localhost với tệp index.js và nó lắng nghe trên cổng 3000, mọi yêu cầu gửi đến https://example.com/ sẽ được chuyển tiếp tới index.js thông qua Nginx.
Điều này giúp tạo ra một phản ứng tự động từ phía máy chủ khi người dùng truy cập vào trang chủ của tên miền của chúng ta.
Bây giờ hãy kiểm tra lại nginx có bị lỗi gì không:
sudo nginx -t
Nếu mọi thứ OK hết thì sẽ restart lại nginx:
sudo systemctl restart nginx
Nếu ứng dụng Node.js của chúng ta đang chạy và cấu hình của ứng dụng cũng như cấu hình của Nginx đã được thiết lập đúng, bây giờ chúng ta có thể truy cập vào ứng dụng của mình thông qua máy chủ proxy nghịch đảo của Nginx. Truy cập vào tên miền mà chúng ta đã thiết lập và xem kết quả.
Lời kết
Bài viết hơi dài, nhưng mong nó sẽ giúp ích được cho các bạn! Bây giờ các bạn đã có ứng dụng Node.js của mình đang chạy sau một máy chủ proxy nghịch đảo của Nginx trên một máy chủ VPS Linux Ubuntu. Bạn nào có câu hỏi hoặc gặp khó khăn trong quá trình setup thì có thể nhắn trực tiếp lên page FB nhé!
Trong các bài viết sau mình sẽ hướng dẫn các bạn deploy các ứng dụng như Next.js, Nest.js, v.v lên VPS Linux Ubuntu.
Cảm ơn các bạn đã theo dõi bài viết!