Ở các bài viết trước iNET đã hướng dẫn các bạn cài đặt phần mềm Nginx và Node.js trên các hệ điều hành Linux. Trong bài viết này iNET sẽ hướng dẫn các bạn cấu hình Nginx làm Proxy cho ứng dụng Node.js.

1. Nginx và Node.js là gì?

Nginx là một phần mềm máy chủ Web mã nguồn mở được sử dụng phổ biến phục vụ các ứng dụng web, làm proxy ngươc (reverse proxy) hay cân bằng tải (Load Balancing).

Node.js là một nền tảng mã nguồn mở chạy JavaScript phía máy chủ (server-side) được xây dựng dựa trên công cụ JavaScript V8. Node.js cho phép bạn chạy JavaScript bên ngoài trình duyệt, điều này giúp cho Node.js hoạt động rất hiệu quả trong việc phát triển các ựng dụng mạng nhanh như API Backend, các ứng dụng thời gian thực chat, streaming ...

2. Hướng dẫn cấu hình Nginx làm Reverse Proxy cho Node.js

Hướng dẫn cài đặt Nginx và Node.js

- Hướng dẫn cài đặt Nginx bạn có thể tham khảo tại đâytại đây

- Hướng dẫn cài đặt Node.js bạn có thể tham khảo tại đâytại đây

Hướng dẫn cấu hình Nginx làm Reverse Proxy

- Kiểm tra ứng dụng node.js của bạn xem đã hoạt động chưa

Ví dụ bạn có 1 ứng dụng node.js đang chạy ở port 5678

netstat -nlp |grep 5678
root@cs-turbo-20250211085750434:~# netstat -nlp |grep 5678
tcp        0      0 0.0.0.0:5678            0.0.0.0:*               LISTEN      1581/node

Kết quả trên là ứng dụng của bạn đã đang hoạt động

- Cấu hình Nginx làm Reverse Proxy 

Tạo file cấu hình Nginx với domain bạn muốn tạo

nano /etc/nginx/sites-available/n8n.conf

Sửa file n8n.conf vừa tạo theo nội dung sau:

server {
    listen 80;
    server_name n8n.inet.vn;

    location / {
        proxy_pass http://localhost:5678;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Tạo symbolic link tới thư mục site-enabled trong cấu hình Nginx

ln -s /etc/nginx/sites-available/n8n.conf /etc/nginx/sites-enabled/

Kiểm tra lại file cấu hình của Nginx:

nginx -t
root@cs-turbo-20250211085750434:~# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reload lại file cấu hình:

service nginx reload

Cài đặt Certbot để cấp phát SSL Let's Encrypt free cho domain

 

apt install certbot python3-certbot-nginx

 

Cấp phát SSL cho domain cần cấu hình

certbot --nginx -d n8n.inet.vn

3. Kết luận

Nginx không chỉ là một ứng dụng web server mạnh mẽ, hiệu suất cao mà còn được ứng dụng làm reverse proxy phổ biến cho các dịch vụ backend như Node.js, Python, ....

Chúc các bạn thực hiện thành công!