Taufik Mulyana
Taufik Mulyana
Linux System Administrator, Interested in Linux, Cloud, Containers
December 16, 2018 3 min read

Instalasi Nginx dengan Brotli Compression

nginx dengan dukungan brotli

Instalasi Nginx dengan Brotli Compression, seperti halnya gzip, brotli merupakan sebuah compression algorithm yang dibuat oleh Google dan di klaim lebih cepat dibanding gzip, penggunaan kompresi brotli dapat meningkatkan performa pada web dengan melakukan kompresi pada berkas statis seperti html, css dan js, dan saat ini banyak peramban dan web server telah mendukung kompresi ini.

di artikel ini saya akan membahas cara menambahkan dukungan kompresi brotli pada nginx, karena dukungan brotli tidak didukung secara bawaan, kita perlu menambahkan modul brotli dan melakukan build secara manual.

Unduh kode sumber nginx

tambahkan repositori nginx terlebih dahulu, karena nantinya kita akan mengambil kode sumber dari repositori nginx, disini saya menggunakan Ubuntu 18.04 Bionic

$ sudo vim /etc/apt/sources.list.d/nginx.list

deb http://nginx.org/packages/ubuntu/ bionic nginx
deb-src http://nginx.org/packages/ubuntu/ bionic nginx

untuk distribusi lain bisa cek disini

tambahkan signing key nginx

$ wget https://nginx.org/keys/nginx_signing.key
$ sudo apt-key add nginx_signing.key

lalu mutakhirkan list paket

$ sudo apt-get update

lalu kita unduh kode sumber nginx dengan perintah berikut

$ cd /usr/local/src
$ sudo apt-get source nginx
-- output --
dpkg-source: info: extracting nginx in nginx-1.15.8
dpkg-source: info: unpacking nginx_1.15.8.orig.tar.gz
dpkg-source: info: unpacking nginx_1.15.8-1~bionic.debian.tar.xz

jika anda mengalami galat seperti dibawah

E: Unpack command 'dpkg-source --no-check -x nginx_1.15.8-1~bionic.dsc' failed.
N: Check if the 'dpkg-dev' package is installed.

silahkan pasang dahulu dpkg-dev

$ sudo apt-get install dpkg-dev

lalu kita pasang depedensi yang dibutuhkan nginx

$ sudo apt-get build-dep nginx

lalu kita clone kode sumber ngx_brotli dari github

$ git clone --recursive https://github.com/google/ngx_brotli.git

Build nginx dengan dukungan Brotli

selanjutnya kita akan menambahkan dukungan brotli ini ke nginx, kita perlu menambahkan parameter –add-module pada rules

$ cd /usr/local/src/nginx-1.15.8/
$ vim debian/rules

cari config.env.nginx dan config.env.nginx_debug dan tambahkan parameter berikut

--add-module=/usr/local/src/ngx_brotli

selanjutnya kita compile dan build dengan perkakas dpkg-buildpackage kita akan membuat paket binary deb

$ sudo dpkg-buildpackage -b -uc -us

jika telah selesai akan ada dua berkas .deb, nginx_1.15.8-1~bionic_amd64.deb dan nginx-dbg_1.15.8-1~bionic_amd64.deb

lalu kita pasang keduanya dengan perintah berikut

$ sudo dpkg -i /usr/local/src/nginx_1.15.*.deb

lalu tambahkan konfigurasi berikut

brotli on;
brotli_comp_level 6;
brotli_static on;
brotli_types text/plain text/css application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/x-icon image/vnd.microsoft.icon image/bmp image/svg+xml;

tambahkan pada konfigurasi Virtualhost atau di nginx.conf pada direktif http{}

Catatan:

baca juga  Instalasi Nginx dengan Modul VTS

Firefox dan Chrome hanya mendukung brotli pada situs https, jadi jika anda ingin menggunakan brotli, situs anda harus menggunakan https, untuk tutorialnya bisa merujuk ke pranala Konfigurasi https dengan Sertifikat SSL dari Let’s Encrypt Nginx

anda bisa mengetes menggunakan curl jika anda belum memasang ssl pada situs anda.

$ curl -I nothinux.local -H 'Accept-Encoding: br'
HTTP/1.1 200 OK
Server: nginx/1.15.8
Date: Tue, 01 Jan 2019 15:03:36 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Set-Cookie: PHPSESSID=8u35d5cj5rse42208f9s74brbk; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Content-Encoding: br

 

Leave a Reply

Your email address will not be published. Required fields are marked *