Konfigurasi Dasar Nginx Gzip
Kompresi Gzip pada Nginx berfungsi untuk memperkecil ukuran file teks (HTML, CSS, JS, JSON, XML) sebelum dikirim ke browser, sehingga mempercepat waktu muat halaman. Untuk mengaktifkannya, Anda perlu menyunting file konfigurasi utama Nginx (biasanya di /etc/nginx/nginx.conf).
Berikut adalah blok konfigurasi standar yang direkomendasikan untuk performa optimal:
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 256;Penjelasan Parameter Konfigurasi
Setiap direktif memiliki fungsi spesifik dalam menentukan efisiensi kompresi. Berikut adalah rincian parameter yang digunakan:
| Parameter | Fungsi |
|---|---|
| gzip on | Mengaktifkan modul kompresi Gzip. |
| gzip_vary on | Menambahkan header 'Vary: Accept-Encoding' agar cache proxy mengenali konten terkompresi. |
| gzip_proxied any | Mengaktifkan kompresi untuk semua request yang melalui proxy. |
| gzip_comp_level 6 | Tingkat kompresi (1-9). Level 6 adalah titik keseimbangan terbaik antara CPU dan rasio kompresi. |
| gzip_min_length 256 | Hanya mengompres file dengan ukuran minimal 256 byte untuk menghindari overhead pada file kecil. |
| gzip_types | Daftar tipe MIME yang akan dikompresi oleh Nginx. |
Langkah Implementasi dan Verifikasi
- Buka file konfigurasi:
sudo nano /etc/nginx/nginx.conf. - Masukkan blok konfigurasi di atas di dalam blok
http { ... }. - Simpan file dan lakukan pengecekan sintaks:
sudo nginx -t. - Jika tidak ada error, muat ulang Nginx:
sudo systemctl reload nginx. - Verifikasi apakah Gzip aktif dengan perintah curl:
curl -I -H "Accept-Encoding: gzip" http://domain-anda.com.
Jika konfigurasi berhasil, Anda akan melihat header Content-Encoding: gzip pada output perintah curl tersebut. Pastikan untuk tidak mengompres file yang sudah terkompresi secara alami seperti gambar (JPEG, PNG) atau file video, karena akan membuang sumber daya CPU tanpa mengurangi ukuran file secara signifikan.
Troubleshooting Umum
Jika kompresi tidak berjalan, periksa apakah modul ngx_http_gzip_module telah terinstal. Pada sebagian besar distribusi Linux, modul ini sudah terpasang secara default. Pastikan juga tidak ada aturan gzip off; yang tidak sengaja tertulis di dalam blok server atau location yang menimpa konfigurasi global.