Konfigurasi Nginx Gzip Compression: Panduan Teknis Optimal

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:

ParameterFungsi
gzip onMengaktifkan modul kompresi Gzip.
gzip_vary onMenambahkan header 'Vary: Accept-Encoding' agar cache proxy mengenali konten terkompresi.
gzip_proxied anyMengaktifkan kompresi untuk semua request yang melalui proxy.
gzip_comp_level 6Tingkat kompresi (1-9). Level 6 adalah titik keseimbangan terbaik antara CPU dan rasio kompresi.
gzip_min_length 256Hanya mengompres file dengan ukuran minimal 256 byte untuk menghindari overhead pada file kecil.
gzip_typesDaftar tipe MIME yang akan dikompresi oleh Nginx.

Langkah Implementasi dan Verifikasi

  1. Buka file konfigurasi: sudo nano /etc/nginx/nginx.conf.
  2. Masukkan blok konfigurasi di atas di dalam blok http { ... }.
  3. Simpan file dan lakukan pengecekan sintaks: sudo nginx -t.
  4. Jika tidak ada error, muat ulang Nginx: sudo systemctl reload nginx.
  5. 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.