Cài đặt Brotli cho Nginx trên CentOS 7 [VPSSIM]

Brotli là gì?

Brotli là một thuật toán nén mã nguồn mở mới được Google phát triển như là một sự thay thế cho Gzip, Zopfli và Deflate. Theo Google việc nén bằng Brotli đã cho thấy file được nén có dung lượng nhỏ hơn tới 26% so với các phương pháp nén hiện tại, điều này đồng nghĩa với việc các website khi được nén bởi Brotli sẽ giúp người dùng truy cập website nhanh hơn và đồng thời giảm tải cho Server.

Để sử dụng Brotli cả máy chủ và trình duyệt phải tương thích với Brotli. Brotli hiện đã được hỗ trợ bởi hầu hết các trình duyệt phổ biến như:

  • Google Chrome: Chrome 49+
  • Mozilla Firefox: Firefox 44+
  • Opera: Opera 36+
  • Safari 13

Vì hiện tại Nginx chưa hỗ trợ thêm module Brotli chính thức nên trong bài viết này mình sẽ hướng dẫn các bạn cài đặt module Brotli được phát triển bởi Google gọi là ngx_brotli.

Cài đặt Brotli cho Nginx trên CentOS 7

Trước khi cài đặt Brotli thì mình xin thông tin thêm về VPS của mình:

Download mã nguồn Brotli

Tải về mã nguồn của Brotli bằng lệnh sau

git clone https://github.com/google/ngx_brotli.git
cài đặt brotli 1

Chuyển vào thư mục vừa clone và giải nén mã nguồn.

cd ngx_brotli
git submodule update --init --recursive
cài đặt brotli 2

Compile mã nguồn Brotli

Chuyển đến thư mục chữa mã nguồn của Nginx bằng lệnh sau.

cd /usr/local/vpssim/nginx-1.17.0

Sử dụng lệnh sau để compile mã nguồn ngx_brotli

./configure --with-compat --add-dynamic-module=/root/ngx_brotli
cài đặt brotli 3
cài đặt brotli 4

Tiếp theo dùng lệnh make module để tạo Brotli module cho Nginx

make modules

Sau khi tạo modules thành công, tiếp tục vào thư mục objs, liệt kê các file trong thư mục ta sẽ thấy 2 module của Brotli đã được tạo

cd objs
ls
ngx_http_brotli_filter_module.so       
ngx_http_brotli_static_module.so
cai dat brotli cho

Sử dụng lệnh sau để copy 2 module này vào thư mục modules của nginx

cp /usr/local/vpssim/nginx-1.17.0/objs/{ngx_http_brotli_filter_module.so,ngx_http_brotli_static_module.so} /usr/share/nginx/modules

Kiểm tra xem 2 module trên đã vào thư modules chưa nhé

cd /usr/share/nginx/modules
ls
cài đặt brotli 6

Cấu hình Nginx

Bước cuối cùng là cấu hình Nginx để nhận 2 module của Brotli. Mở file cấu hình của Nginx bằng lệnh

nano /etc/nginx/nginx.conf

thêm đoạn code sau vào đầu file cấu hình của Nginx

load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;
cài đặt brotli 7

Thêm đoạn code sau vào trong block “http {” để kích hoạt Brotli cho Nginx

brotli on;      
brotli_comp_level 6;      
brotli_static on;      
brotli_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;  
cài đặt brotli 8

Bạn có thể tham khảo thêm cách cấu hình cho Brotli ở đây. Lưu file nginx.conf bằng ctrl + o, thoát bằng ctrl + x.

Kiểm tra file cấu hình Nginx đã đúng chưa bằng lệnh

nginx -t
cài đặt brotli 9

Sau đó khởi động lại Nginx để các thay đổi trong file cấu hình có hiệu lực.

service nginx reload

Kiểm tra xem Brotli đã hoạt động trên Nginx chưa nhé.

Cài đặt Brotli 10
https://tools.keycdn.com/brotli-test
cài đặt brotli 11

Như vậy là mình đã thành công trong khi cài đặt Brotli cho Nginx trên CentOS 7, nếu các trong quá trình cài đặt có trục trặc gì hay comment bên dưới nhé, mình sẽ cố gắng giải đáp nếu có thể.

0 0 votes
Đánh giá bài viết
Đăng kí
Thông báo khi
guest

11 Comments
cũ nhất
mới nhất
Inline Feedbacks
View all comments
Dũng
Dũng
Khách
10/08/2019 4:56 pm

có thật sự nhanh hơn không bạn?

Mikeamir
Mikeamir
Khách
14/08/2019 7:58 am

Very useful tutorials!

shroot
shroot
Khách
27/05/2020 11:29 pm

Thanks very helpful! VPSSIM seems abandoned. How can I update Nginx 1.17.5 to latest version 1.19 and compile with Brotli module?

shroot
shroot
Khách
27/05/2020 11:35 pm

Thanks very helpful! VPSSIM seems abandoned. How can I update Nginx 1.17.5 to latest version 1.19 and compile with Brotli module?

son
son
Khách
28/05/2020 7:56 am

VPSSIM lau gio khong thay cap nhat nua.

shroot
shroot
Khách
24/11/2020 1:41 am

how can i compile brotli with nginx stable 1.18? thanks!

shroot
shroot
Khách
Reply to  Hồng Sơn
19/02/2021 10:32 pm

can you please make a step by step guide to compiling and installing the latest nginx mainline on VPSSIM?