Mới nhất

Kích hoạt và cài đặt Brotli cho Nginx Centmin Mod

Brotli là gì?

Brotli là một chuẩn nén dữ liệu mới được phát triển bởi Google. Nó được tối ưu bằng nhiều phương pháp khác nhau cho các ứng dụng web như HTML, CSS, JS, v.v… Hiện nay phần lớn các browser phổ biến đã hỗ trợ Brotli mặc định, như Chrome, Firefox hay Edgle.

Kích hoạt và cài đặt Brotli cho Nginx

Theo số liệu mà Google đưa ra, Brotli đang đứng đầu về tốc độ nén, giải nén và có khả năng nén tập tin về mức dung lượng thấp nhất trong hầu hết các trường hợp so với các thuật toán khác. Cụ thể, về dung lượng, Brotli có khả năng nén tốt hơn 25% so với chuẩn nén Gzip. Do vậy, 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 đi khá nhiều.

Kích hoạt và cài đặt Brotli cho Nginx Centmin Mod

ngx_brotli là một module được Google phát triển giúp cho các web server chạy trên Nginx có thể sử dụng được chuẩn nén Brotli.

Mình đã có một bài viết hướng dẫn cách cài đặt Brotli cho Nginx với Server sử dụng LEMP stack VPSSIM. Trong bài này mình sẽ hướng dẫn kích hoạt Brotli cho Nginx với LEMP stack Centmin Mod.

Kích hoạt và cài đặt Brotli là một trong những mẹo để tăng hiệu suất cho Server mà tác giả của Centmin Mod khuyến nghị, và cách kích hoạt nó cũng dễ hơn so với việc bạn tự cài Brotli từ source.

Đầu tiên là đăng nhập vào server với quyền quản trị cao nhất, nếu sử dụng Vultr bạn có thể theo cách sau để đăng nhập VPS trên macOS. Sau khi đăng nhập đầu tiên là chỉnh sửa file config của Centmin Mod bằng lệnh sau.

nano /etc/centminmod/custom_config.inc

Thêm đoạn cấu hình vào file config

NGXDYNAMIC_BROTLI='y'
NGINX_LIBBROTLI='y'
NGINX_BROTLIDEP_UPDATE='y'

Nhớ lưu file (Ctr + o) và đóng file (Crt +x). Sau đó mở menu centmin mod, chọn menu số 4 để compile lại Nginx.

--------------------------------------------------------
     Centmin Mod Menu 123.09beta01 centminmod.com     
--------------------------------------------------------
1).  Centmin Install
2).  Add Nginx vhost domain
3).  NSD setup domain name DNS
4).  Nginx Upgrade / Downgrade
5).  PHP Upgrade / Downgrade
6).  XCache Re-install
7).  APC Cache Re-install
8).  XCache Install
9).  APC Cache Install
10). Memcached Server Re-install
11). MariaDB MySQL Upgrade & Management
12). Zend OpCache Install/Re-install
13). Install/Reinstall Redis PHP Extension
14). SELinux disable
15). Install/Reinstall ImagicK PHP Extension
16). Change SSHD Port Number
17). Multi-thread compression: zstd,pigz,pbzip2,lbzip2
18). Suhosin PHP Extension install
19). Install FFMPEG and FFMPEG PHP Extension
20). NSD Install/Re-Install
21). Data Transfer (TBA)
22). Add WordPress Nginx vhost + Cache Plugin
23). Update Centmin Mod Code Base
24). Exit
--------------------------------------------------------
Enter option [ 1 - 24 ] 4

Sau khi cài đặt lại Nginx xong, ta kiểm tra xem module ngx_brotli đã được kích hoạt chưa bằng lệnh kiểm tra phiên bản Nginx.

nginx -V

Nếu thấy dòng –add-dynamic-module=../ngx_brotli tức là module ngx_brotli đã được kích hoạt.

nginx version: nginx/1.17.9 (240320-035433-centos7-kvm-1d5b645)
built by gcc 8.3.1 20190311 (Red Hat 8.3.1-3) (GCC)
built with OpenSSL 1.1.1e 17 Mar 2020
TLS SNI support enabled
configure arguments: --with-ld-opt='-Wl,-E -L/usr/local/zlib-cf/lib -L/usr/local/lib -ljemalloc -Wl,-z,relro -Wl,-rpath,/usr/local/zlib-cf/lib:/usr/local/lib -flto=1 -fuse-ld=gold' 
--with-cc-opt='-I/usr/local/zlib-cf/include
-I/usr/local/include -m64 -march=x86-64
-mavx -mavx2 -mpclmul -msse4 -msse4.1 -msse4.2 -DTCP_FASTOPEN=23 -g -O3 -fstack-protector-strong -flto=1 -fuse-ld=gold --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wimplicit-fallthrough=0 -fcode-hoisting -Wno-cast-function-type -Wno-format-extra-args -Wp,-D_FORTIFY_SOURCE=2 -Wno-deprecated-declarations'
--sbin-path=/usr/local/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf
--build=240320-035433-centos7-kvm-1d5b645 --with-compat --with-http_stub_status_module
--with-http_secure_link_module --with-libatomic --with-http_gzip_static_module
--add-dynamic-module=../ngx_brotli --with-http_sub_module --with-http_addition_module
--with-http_image_filter_module=dynamic --with-http_geoip_module --with-stream_geoip_module
--with-stream_realip_module --with-stream_ssl_preread_module --with-threads --with-stream --with-stream_ssl_module
--with-http_realip_module --add-dynamic-module=../ngx-fancyindex-0.4.2 --add-module=../ngx_cache_purge-2.5 --add-dynamic-module=../ngx_devel_kit-0.3.0 --add-dynamic-module=../set-misc-nginx-module-0.32 --add-dynamic-module=../echo-nginx-module-0.61 --add-module=../redis2-nginx-module-0.15 --add-module=../ngx_http_redis-0.3.7 --add-module=../memc-nginx-module-0.18 --add-module=../srcache-nginx-module-0.32rc1 --add-dynamic-module=../headers-more-nginx-module-0.33 --with-pcre-jit --with-zlib=../zlib-cloudflare-1.3.0 --with-http_ssl_module --with-http_v2_module --with-openssl=../openssl-1.1.1e --with-openssl-opt='enable-ec_nistp_64_gcc_128 enable-tls1_3 -fuse-ld=gold'

Sau khi kích hoạt Brotli cho Nginx trên server, có thể kiểm tra website đã được nén bằng brotli hay chưa bằng số bằng một số trang web như. https://nixcp.com/tools/brotli-test/

Kích hoạt Brotli cho Nginx

Trong thông tin header bạn sẽ thấy một dòng là content-encoding: br tức là Brotli đã được kích hoạt.

Chúc các bạn thành công!

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

1 Comment
cũ nhất
mới nhất
Inline Feedbacks
View all comments
quangtt
quangtt
Khách
29/12/2020 1:25 pm

rat don gian va de hieu