NGINX: Hướng dẫn Cài đặt và Sử dụng Module njs

Module njs là một công cụ mạnh mẽ giúp bạn mở rộng khả năng của NGINX bằng cách viết kịch bản tùy chỉnh sử dụng JavaScript. Dưới đây là hướng dẫn chi tiết từng bước để cài đặt, viết mã, và triển khai module njs.


1. Cài đặt Module njs

1.1. Cài đặt njs trên các hệ điều hành phổ biến

Tùy vào hệ điều hành, bạn có thể cài đặt module ngx_http_js_modulengx_stream_js_module như sau:

  • Ubuntu/Debian:

  • sudo apt-get install nginx-module-njs
  • CentOS/Red Hat:

  • sudo yum install nginx-plus-module-njs
  • Alpine Linux:

  • apk add nginx-plus-module-njs

1.2. Kích hoạt module trong tệp cấu hình nginx.conf

Sau khi cài đặt, bạn cần khai báo và tải module njs trong cấu hình NGINX:

load_module modules/ngx_http_js_module.so;
load_module modules/ngx_stream_js_module.so;

Kiểm tra cấu hình và khởi động lại NGINX:

nginx -t && nginx -s reload

2. Viết Mã JavaScript với njs

2.1. Tạo một tệp JavaScript

Tạo tệp app.js chứa logic xử lý:

2.2. Cấu hình NGINX để sử dụng mã njs

Thêm cấu hình vào tệp nginx.conf:

Cấu hình này:

  • Tải module njs.

  • Nhập tệp app.js (được đặt trong cùng thư mục với cấu hình NGINX).

  • Gọi hàm hello khi có yêu cầu đến đường dẫn gốc /.

Khởi động lại NGINX:


3. Kiểm tra Kết quả

Mở trình duyệt hoặc sử dụng lệnh curl để kiểm tra:

Kết quả sẽ hiển thị:


4. Tính Năng Mở Rộng với njs

4.1. Thao tác tiêu đề yêu cầu và phản hồi

Thêm logic trong tệp app.js:

Cập nhật cấu hình NGINX:

Truy cập http://localhost:8080/headers để xem tiêu đề phản hồi được sửa đổi.

4.2. Xử lý yêu cầu phức tạp

Ví dụ: Kiểm tra token xác thực:

Cập nhật cấu hình:

Kiểm tra với lệnh curl:


5. Lợi ích và Ứng dụng của njs

  • Tùy chỉnh linh hoạt: Xử lý logic phía máy chủ mà không cần thay đổi ứng dụng backend.

  • Hiệu năng cao: njs được tích hợp trực tiếp vào NGINX, đảm bảo tốc độ và hiệu suất.

  • Tương thích tốt: Dễ dàng mở rộng và tích hợp với các ứng dụng hiện có.


6. Kết Luận

Module njs là công cụ mạnh mẽ giúp NGINX trở nên linh hoạt hơn trong xử lý HTTP và Stream. Từ việc xử lý yêu cầu đơn giản đến tạo logic phức tạp, njs mở ra nhiều cơ hội mới cho các nhà phát triển.

Hãy bắt đầu triển khai njs để tận dụng hết tiềm năng của NGINX! 🎉

Last updated

Was this helpful?