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:
- VPS High Requency Compute của Vultr
- Quản lý bằng VPSSIM
- Nginx mainline 1.17.0
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
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
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
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
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ấ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;
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;
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
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é.
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ể.
có thật sự nhanh hơn không bạn?
Very useful tutorials!
Thanks very helpful! VPSSIM seems abandoned. How can I update Nginx 1.17.5 to latest version 1.19 and compile with Brotli module?
Thanks very helpful! VPSSIM seems abandoned. How can I update Nginx 1.17.5 to latest version 1.19 and compile with Brotli module?
Yes, VPSSIM no longer get update.
VPSSIM lau gio khong thay cap nhat nua.
Đúng rồi, có lẽ tác giả bận việc gì đó.
how can i compile brotli with nginx stable 1.18? thanks!
same as nginx mainline.
can you please make a step by step guide to compiling and installing the latest nginx mainline on VPSSIM?
VPSSIM is outdate, I no longer working on it.