Dynamic Modules cho phép bạn thêm các module vào NGINX mà không cần phải biên dịch lại toàn bộ phần mềm. Tính năng này giúp NGINX linh hoạt hơn, dễ dàng mở rộng với các chức năng bổ sung chỉ khi cần thiết.
Các mô-đun động cắm vào NGINX Plus để cung cấp chức năng bổ sung.
1. Dynamic Modules Là Gì?
Dynamic Modules là các module được tải vào lúc runtime thay vì tích hợp sẵn vào NGINX khi biên dịch. Điều này mang lại các lợi ích:
Dễ dàng thêm/bớt module: Chỉ cần chỉnh sửa cấu hình, không cần biên dịch lại NGINX.
Giảm tải: Tải các module cần thiết để tối ưu hóa tài nguyên.
2. Kiểm Tra Dynamic Modules
Để kiểm tra phiên bản NGINX hiện tại có hỗ trợ dynamic modules hay không, sử dụng lệnh:
Tìm các module có dạng --with-compat hoặc các module có hỗ trợ dynamic. Ví dụ:
3. Cách Tải Module Động
Dynamic Modules thường có phần mở rộng .so. Bạn có thể tải module trong cấu hình NGINX bằng cách sử dụng chỉ thị load_module.
Thêm module vào file nginx.conf hoặc file cấu hình tùy chỉnh:
Sau khi chỉnh sửa, kiểm tra cấu hình:
Khởi động lại NGINX:
4. Các Bước Cài Đặt Module Động
4.1. Lấy Module Dynamic
Dùng Module Có Sẵn:
Các bản phân phối NGINX chính thức (hoặc NGINX Plus) thường bao gồm các module động sẵn.
Kiểm tra thư mục /etc/nginx/modules/ hoặc /usr/share/nginx/modules/ để tìm file .so.
Biên Dịch Module Riêng: Nếu module bạn cần không có sẵn, bạn cần biên dịch nó:
File .so sẽ được tạo trong thư mục objs/.
4.2. Cài Đặt Module
Sao chép file .so vào thư mục module NGINX:
4.3. Tải Module Vào NGINX
Chỉnh sửa file cấu hình nginx.conf:
5. Danh Sách Một Số Module Dynamic Phổ Biến
Phân tích địa chỉ IP để xác định vị trí địa lý.
ngx_http_image_filter_module
Chuyển đổi và tối ưu hình ảnh.
ngx_http_headers_more_module
Thêm, chỉnh sửa, hoặc xóa HTTP headers.
Mở rộng NGINX với Lua scripting.
6. Xử Lý Lỗi Khi Tải Module
Lỗi Module Không Tìm Thấy: Kiểm tra đường dẫn module trong chỉ thị load_module.
Lỗi Phiên Bản Không Tương Thích: Dynamic Modules cần được biên dịch với tùy chọn --with-compat để đảm bảo tương thích với NGINX hiện tại.
Kiểm Tra Log Lỗi: Log lỗi của NGINX nằm ở /var/log/nginx/error.log. Kiểm tra thông báo cụ thể để xử lý.
7. Cấu Hình Mẫu Hoàn Chỉnh
Dưới đây là ví dụ cấu hình hoàn chỉnh với module ngx_http_geoip_module:
Dynamic Modules là cách hiệu quả để mở rộng NGINX mà không phải biên dịch lại toàn bộ hệ thống. Với các bước trên, bạn có thể dễ dàng tải và sử dụng các module động trong NGINX để thêm các tính năng mạnh mẽ và linh hoạt vào cấu hình hiện có.