Cách cấu hình Nginx để nén (compress) tệp tin và dữ liệu truyền đi

Khi truyền tải tệp tin và dữ liệu trên mạng, việc nén (compress) chúng có thể giúp giảm kích thước dữ liệu và tăng tốc độ tải trang. Nginx cung cấp khả năng nén tệp tin và dữ liệu truyền đi thông qua việc cấu hình. Trong bài viết này, chúng ta sẽ tìm hiểu cách cấu hình Nginx để thực hiện điều này.

Nén tệp tin tĩnh

Để nén tệp tin tĩnh (ví dụ: HTML, CSS, JavaScript), bạn có thể sử dụng module “ngx_http_gzip_static_module” của Nginx. Đầu tiên, đảm bảo rằng module này đã được cài đặt và kích hoạt trên máy chủ của bạn. Sau đó, bạn có thể cấu hình Nginx để nén các tệp tin tĩnh bằng cách sử dụng directive “gzip_static” trong block server hoặc location của tệp cấu hình Nginx. Ví dụ:

http {
gzip_static on;

server {
...
location / {
...
}
}
}

 

Khi directive “gzip_static” được bật, Nginx sẽ tìm kiếm các tệp tin tĩnh có phiên bản nén (.gz) tương ứng. Nếu tìm thấy, Nginx sẽ gửi phiên bản nén này đến client.

How to create virtual hosts in Nginx - Anil Labs

Nén dữ liệu truyền đi

Để nén dữ liệu truyền đi, bạn có thể sử dụng module “ngx_http_gzip_module” của Nginx. Đảm bảo rằng module này đã được cài đặt và kích hoạt trên máy chủ của bạn. Sau đó, bạn có thể cấu hình Nginx để nén dữ liệu truyền đi bằng cách sử dụng directive “gzip” trong block server hoặc location của tệp cấu hình Nginx. Ví dụ:

http {
gzip on;
gzip_comp_level 6;
gzip_types text/plain text/css application/javascript;

server {
...
location / {
...
}
}
}

 

Trong ví dụ này, chúng ta đã bật nén dữ liệu thông qua directive “gzip on”. Directive “gzip_comp_level” chỉ định mức độ nén dữ liệu (giá trị từ 1 đến 9, mức độ nén cao nhất là 9). Directive “gzip_types” chỉ định các loại tệp tin mà Nginx sẽ nén trước khi gửi đi.

Building Loadcat: A Simple NGINX Configuration Tool | Toptal®

Kết hợp nén tệp tin và dữ liệu truyền đi

Bạn cũng có thể kết hợp cả hai phương pháp trên để nén cả tệp tin tĩnh và dữ liệu truyền đi. Bằng cách cấu hình Nginx như trên, bạn có thể đảm bảo rằng cả tệp tin tĩnh và dữ liệu truyền đi đều được nén để tối ưu hóa tốc độ truyền tải.

Lưu ý rằng việc nén tệp tin và dữ liệu có thể tốn một ít tài nguyên máy chủ để thực hiện quá trình nén và giải nén. Do đó, hãy cân nhắc và thử nghiệm kỹ lưỡng trước khi áp dụng nén trên các tệp tin và dữ liệu truyền đi trên môi trường sản phẩm của bạn.

Cài đặt Google PageSpeed module NGINX trên Ubuntu 20.04 - Đỗ Trung Quân

Trên đây là cách cấu hình Nginx để nén tệp tin và dữ liệu truyền đi. Việc thực hiện nén sẽ giúp tăng tốc độ truyền tải và tối ưu hóa hiệu suất trang web của bạn.