Brotli adalah algoritma compression open source yang dikembangkan oleh Google, yang dapat memberikan compression yang lebih baik dibandingkan dengan gzip.
Dengan mengimplementasikan Brotli Compression pada web server Nginx, kamu dapat mempercepat loading website secara signifikan, mengurangi penggunaan bandwidth, dan meningkatkan pengalaman pengguna.
Pada artikel ini saya menggunakan ubuntu 22.04 dan versi nginx 1.18.0 yang sudah terinstall dan running.
1. Install Dependensi yang Diperlukan
Update sistem dan instal dependency
sudo apt update && sudo apt install dpkg-dev build-essential gnupg2 git gcc cmake libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev curl unzip libbrotli-dev git -y
2. Download Source Code Nginx dan Modules Brotli
Nginx
Cek versi Nginx yang sedang berjalan
nginx -v
Download source Nginx dengan versi yang sama
sudo wget https://nginx.org/download/nginx-1.18.0.tar.gz
sudo tar -xzvf nginx-1.18.0.tar.gz
Brotli
Clone repository Brotli
git clone https://github.com/google/ngx_brotli
cd ngx_brotli
git submodule update –init
3. Configuration dan Compile Nginx dengan Module Brotli
Masuk ke direktori source Nginx
cd ../nginx-1.18.0
Jalankan configuration dengan menambahkan module Brotli
./configure –add-dynamic-module=../ngx_brotli $(nginx -V) –with-compat
make
make modules
Copy modules hasil compile, ke directory modules Nginx
sudo cp objs/ngx_http_brotli_filter_module.so /usr/lib/nginx/modules/
sudo cp objs/ngx_http_brotli_static_module.so /usr/lib/nginx/modules/
4. Load Module di Nginx
Masukan modules brotli ke file nginx.conf
echo -e “load_module modules/ngx_http_brotli_filter_module.so;\ load_module modules/ngx_http_brotli_static_module.so;” | sudo tee /etc/nginx/modules-enabled/50-brotli.conf
5. Configuration Brotli Compression
Buka file configuration nginx.conf
sudo nano /etc/nginx/nginx.conf
Tambahkan Configuration Brotli di blok http
##
# Brotli Compression
##brotli on;
brotli_comp_level 6;
brotli_types application/atom+xml application/javascript application/json application/vnd.api+json application/rss+xml
application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype
application/x-font-ttf application/x-javascript application/xhtml+xml application/xml
font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon
image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;

6. Test dan Restart Nginx
Test Configuration
sudo nginx -t
Jika sukses test configuration, reload Nginx
sudo systemctl reload nginx
7. Verification Brotli Nginx
Verification bahwa Brotli berjalan dengan baik
curl -H ‘Accept-Encoding: br’ -I https://domain-kamu.com

Cari header: Content-Encoding: br pada output.
Dengan mengikuti langkah-langkah di atas, kamu berhasil mengimplementasikan Brotli Compression pada Nginx. Ini akan memberikan dampak positif pada performa website kamu, terutama untuk pengguna dengan koneksi internet lambat.

