Panduan Cara

Cara Aktifkan Gzip di Nginx untuk Kurangkan Saiz Laman Hingga 70%

  • 11 minit untuk membaca
  • Pasukan Hostragons
Cara Aktifkan Gzip di Nginx untuk Kurangkan Saiz Laman Hingga 70%

Gzip di Nginx ialah tetapan prestasi yang memampatkan fail berasaskan teks seperti HTML, CSS, JavaScript, XML dan JSON sebelum dihantar dari server ke browser, biasanya mengurangkan saiz laman sebanyak 50-70%. Tujuannya mudah: menghantar kandungan yang sama dalam paket lebih kecil, mempercepatkan loading kali pertama, dan memberikan pengalaman web yang lebih lancar kepada pengguna. Dengan hanya mengaktifkan gzip aktif; pada Nginx, set MIME yang tepat, nilai minimum fail dan tahap mampatan yang sesuai, anda boleh nampak peningkatan kelajuan dalam beberapa minit sahaja.

Kepantasan laman web kini bukan sekadar isu teknikal—ia adalah signal kualiti utama yang mempengaruhi SEO, kadar penukaran, prestasi iklan dan kepuasan pengguna. Standard SEO tahun 2026 menilai pengalaman laman, Core Web Vitals, prestasi mobile dan keberkesanan crawl secara bersama. Maka, mengaktifkan Gzip di Nginx ialah langkah wajib untuk shared hosting, VPS, cloud server dan laman perusahaan yang trafik tinggi. Pilihan hosting berprestasi tinggi di Hostragons juga menyokong hasil ini: Pakej hosting web cepat.

Apa Itu Gzip di Nginx?

Gzip di Nginx adalah ciri server-side yang memampatkan respons HTTP menggunakan algoritma Gzip sebelum dihantar kepada client. Browser akan meminta Accept-Encoding: gzip dan Nginx balas dengan kandungan dalam format gzip, browser membuka fail ini secara automatik tanpa pengguna sedari. Kandungan tidak berubah, hanya saiz transfer dikurangkan.

Contoh: CSS 180 KB boleh jadi 35-50 KB selepas gzip. JavaScript 500 KB boleh turun ke 120-180 KB, bergantung struktur kod. Kerana HTML penuh dengan tag berulang, ruang kosong dan struktur teks, mampatan sehingga 70% sangat biasa. Untuk imej pula, seperti JPEG, PNG, WebP dan AVIF, Gzip tidak efektif kerana format ini telah dimampatkan sendiri.

Adakah Realistik Kurangkan Saiz Laman Hingga 70%?

Ya, untuk jenis fail yang betul. Tetapi perlu faham: Gzip hanya mengecilkan saiz transfer sumber berasaskan teks, bukan semua saiz laman web. Jika satu laman berat 3 MB, dan 1 MB daripadanya ialah HTML, CSS, JS dan JSON sementara 2 MB ialah imej/video, Gzip hanya berkesan ke atas 1 MB sahaja. Jika 1 MB ini dipampatkan 70%, jumlah laman turun ke sekitar 2.3 MB. Laman yang banyak script dan teks akan nampak kesan lebih ketara.

Contoh praktikal: Laman WordPress dengan HTML utama 220 KB, CSS 310 KB, JS 760 KB, JSON 120 KB. Jumlah boleh dimampatkan ialah 1,410 KB. Selepas Gzip, angka turun ke 420-600 KB. Ini bermakna penjimatan sekitar 800-990 KB hanya dari transfer. Di mobile, perbezaan ini memendekkan LCP dan TTFB serta masa browser proses kandungan.

Kesan Gzip Ke Atas SEO dan Pengalaman Pengguna

Google tidak jadikan Gzip satu faktor ranking, tetapi metrik prestasi yang dipengaruhi Gzip sangat penting untuk SEO. Fail lebih kecil, download lebih cepat, browser boleh render lebih awal, pengguna kurang menunggu. Ini sangat penting untuk pengguna mobile, bandwidth rendah dan pelawat global.

  • Loading awal lebih pantas: Fail HTML kecil membolehkan browser bina rangka laman lebih cepat.

  • Penggunaan bandwidth lebih rendah: Data yang dihantar kurang, boleh jimat kos untuk laman trafik tinggi.

  • Crawl lebih cekap: Bot enjin carian download sumber dengan lebih efisien.

  • Core Web Vitals lebih baik: Walaupun Gzip tidak selesaikan LCP sepenuhnya, ia membantu dengan mempercepatkan transfer CSS dan JS.

  • Kadar bounce lebih rendah: Bagi laman e-dagang dan korporat, penambahbaikan beberapa ratus milisaat pun boleh memberi kesan kepada conversion rate.

Optimasi kelajuan bukan hanya tentang setting server, tetapi juga hosting, SSL, DNS dan tema. Untuk setup selamat dan pantas, boleh rujuk Penyelesaian sijil SSL dan Semakan domain dan pendaftaran sebagai bahagian strategi prestasi.

Setting Gzip Nginx yang Dicadangkan

Untuk aktifkan Gzip di Nginx, biasanya tambah beberapa direktif dalam fail konfigurasi utama atau blok server laman tertentu. Path fail bergantung pada OS Linux: Ubuntu/Debian biasanya di /etc/nginx/nginx.conf atau /etc/nginx/sites-available/, CentOS/AlmaLinux/Rocky lebih kerap /etc/nginx/conf.d/.

Setting asas: aktifkan gzip, mampat sumber teks cukup besar, elak masalah browser lama, dan tambah MIME yang tepat. Setting biasa untuk production: gzip aktif; gzip_comp_level 5; gzip_min_length 1024; gzip_vary on; gzip_proxied any; gzip_types text/plain text/css application/javascript application/json application/xml text/xml image/svg+xml;

gzip_comp_level antara 1 hingga 9. Lagi tinggi, lagi mampat, tapi CPU lebih digunakan. Untuk kebanyakan laman, 4, 5 atau 6 paling seimbang. Level 9 bukan selalu terbaik—CPU boleh overload untuk fail yang hanya lebih kecil sedikit. Di VPS atau server dedicated, balance ini penting. Jika sumber terhad, boleh pertimbang Pakej pelayan VPS.

Cara Aktifkan Gzip di Nginx Langkah demi Langkah

1. Ukur Prestasi Semasa

Sebelum optimasi, ukur dulu prestasi. Di Chrome DevTools (Network), refresh dan periksa nilai Size dan Transferred. Jika Transferred hampir sama dengan Size, Gzip mungkin belum aktif. Cari Content-Encoding: gzip di response header. WebPageTest, GTmetrix, PageSpeed Insights dan curl juga boleh digunakan.

Buat pelan ukur: uji homepage, kategori, produk/servis dan blog post. Jangan hanya homepage kerana setiap page template boleh berbeza. Simpan keputusan dalam jadual untuk banding sebelum dan selepas Gzip.

2. Backup Fail Konfigurasi Nginx

Sebelum edit konfigurasi server, pastikan backup dahulu. Silap setting boleh buat Nginx gagal restart. Copy fail dan simpan dengan tarikh. Jika guna hosting managed, mungkin ada setting Compression/Gzip di control panel. Jika tak pasti, minta bantuan penyedia hosting.

3. Tambah Direktif Gzip

Setting Gzip di http block biasanya untuk semua laman, atau boleh tambah dalam server block untuk laman tertentu. Setting production:

gzip aktif; gzip_disable msie6; gzip_vary on; gzip_proxied any; gzip_comp_level 5; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_min_length 1024; gzip_types text/plain text/css text/xml application/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml;

Setting ini meliputi fail teks yang paling biasa. Elakkan tambah MIME tak perlu. Fail sudah dimampatkan seperti JPG, PNG, GIF, WebP, MP4, ZIP, PDF tidak perlu ditambah. SVG boleh dimampatkan kerana ia berasaskan teks.

4. Uji Konfigurasi Nginx

Sebelum restart Nginx, test dulu dengan nginx -t. Jika tiada error, reload dengan systemctl reload nginx untuk elakkan gangguan sambungan. Restart lebih drastik—guna dengan hati-hati untuk laman trafik tinggi.

5. Sahkan Keputusan

Selepas setting, clear cache browser atau guna Incognito. Cari Content-Encoding: gzip di Network. Lihat penurunan Transferred. HTML 240 KB boleh jadi 45-70 KB. CSS dan JS juga patut nampak pengurangan ketara.

Jadual Perbandingan Setting Gzip

Jadual Perbandingan Setting Gzip

Setting

Nilai Dicadangkan

Fungsi

Perlu Perhatian

gzip

on

Aktifkan mampatan.

Jika off, setting lain tidak berfungsi.

gzip_comp_level

4-6

Balance antara kadar mampatan dan kos CPU.

Level 9 bukan selalu terbaik.

gzip_min_length

1024

Fail bawah 1 KB tidak dimampatkan.

Header Gzip untuk fail kecil boleh jadi beban.

gzip_vary

on

Bezakan versi mampat dan normal untuk cache.

Penting untuk laman guna CDN/proxy.

gzip_types

CSS, JS, JSON, XML, SVG

Tentukan jenis fail untuk Gzip.

Jangan tambah format imej/video.

Fail Mana Patut Dimampatkan Dengan Gzip?

Gzip paling berkesan untuk fail yang mengandungi struktur berulang seperti HTML, CSS, JS, JSON API, XML sitemap, RSS dan SVG. Dalam aplikasi moden, fail JavaScript bundle (React, Vue, Angular) besar dan Gzip boleh kurangkan lebih separuh saiznya.

Fail yang tidak patut dimampatkan: JPEG, PNG, WebP, AVIF, MP4, MP3, ZIP, RAR dan PDF—semua ini telah dimampatkan. Mampatkan fail ini hanya menambah beban CPU tanpa hasil. Untuk imej, gunakan WebP/AVIF, saizkan dengan betul, lazy load dan CDN. Untuk strategi ini, rujuk Panduan Mempercepat Laman Web.

Penggunaan Gzip di WordPress, Laravel dan Laman Statik

Laman WordPress

Di WordPress, Gzip boleh diaktifkan di server atau melalui plugin. Cara server lebih baik kerana request dioptimumkan sebelum sampai ke PHP. Cache plugin boleh cadang Gzip, tetapi jika pakai Nginx, setting sebenar adalah di konfigurasi server. CSS/JS minify, critical CSS, optimasi imej dan cache mesti digabungkan untuk hasil terbaik.

Laravel dan API

Di Laravel, respons JSON penting. Endpoint API yang beri data besar, Gzip boleh jimat bandwidth. Jika JSON kecil, gzip_min_length tidak mampatkan—ini normal. Untuk API, pagination, elak field tak perlu dan header cache sama penting macam Gzip.

Laman HTML Statik

Laman statik biasanya nampak kesan Gzip paling cepat. HTML, CSS dan JS dilayan terus oleh Nginx tanpa lapisan aplikasi. Ada juga setup yang generate fail .gz siap, tapi Gzip dinamik sudah cukup untuk kebanyakan laman.

Gzip vs Brotli: Apa Beza?

Brotli ialah algoritma baru dari Google yang boleh beri kadar mampatan lebih baik untuk fail teks berbanding Gzip. Tetapi Brotli tidak sentiasa tersedia di Nginx standard—perlu modul tambahan atau pakej khusus. Gzip pula sangat meluas, stabil dan disokong semua browser utama.

Gzip vs Brotli: Apa Beza?

Kriteria

Gzip

Brotli

Keserasian

Sangat tinggi

Tinggi di browser moden

Mudah dipasang

Siap sedia dengan Nginx

Perlu modul tambahan

Kadar mampatan

Baik

Kebiasaannya lebih baik

Kos CPU

Seimbang

Boleh lebih tinggi ikut level

Cadangan permulaan

Optimasi asas untuk semua laman

Langkah advanced

Untuk prestasi 2026, amalan terbaik ialah sokong Brotli dan Gzip sekali. Jika browser sokong Brotli, gunakan Brotli; jika tidak, Gzip. Namun, hanya dengan setting Gzip yang betul sudah cukup beri peningkatan besar untuk majoriti laman.

Perhatian Jika Guna CDN, Cache atau Proxy

Jika guna CDN atau reverse proxy, rancang rantai mampatan dengan teliti. Sesetengah CDN mampatkan sendiri guna Gzip/Brotli. Jika origin server pun aktif Gzip, tiada masalah double compression jika sistem cek Pengekodan Kandungan dengan betul. Tetap perlu uji. gzip_vary on, dengan header Vary: Accept-Encoding, bantu cache simpan versi yang betul.

Masalah biasa: cache hantar kandungan mampat kepada client yang tidak sokong mampatan. Browser moden jarang bermasalah, tetapi bot, client lama atau integrasi khas boleh jadi isu. Jadi, Vary header dan setting CDN mesti betul. Untuk syarikat, DNS, SSL, CDN dan hosting mesti dirancang bersama. Untuk setup scalable di Hostragons, lihat penyelesaian hosting korporat.

Gzip Dari Sudut Keselamatan dan Stabiliti

Gzip biasanya selamat sebagai setting prestasi, tetapi ada risiko teori (seperti BREACH) untuk laman dengan data sensitif—ia berkait dengan serangan side channel ke atas respons HTTPS dimampatkan. Di aplikasi moden, pengurusan token CSRF, cookie SameSite, header selamat dan reka bentuk respons kurangkan risiko ini. Untuk fail statik terbuka, Gzip dianggap selamat.

Risiko stabiliti pula ialah setting salah. MIME tak lengkap menyebabkan fail tidak dimampatkan, blok konfigurasi silap boleh buat Nginx gagal start. Setiap perubahan mesti diuji dengan nginx -t, pantau log dan, jika boleh, buat waktu trafik rendah.

Metrik Penting Untuk Prestasi Selepas Gzip

Selepas aktifkan Gzip, jangan hanya fokus pada skor PageSpeed. Metrik teknikal lebih tepat perlu dipantau: Transferred size, Encoded body size, TTFB, LCP, FCP dan jumlah permintaan. Gzip kurangkan transfer, bukan masa proses aplikasi. Jika database atau PHP lambat, Gzip tidak akan selesaikan.

  • Transferred size: Saiz sebenar yang dihantar ke browser.

  • Resource size: Saiz fail selepas browser buka.

  • Content-Encoding: Header gzip ialah tanda optimasi aktif.

  • LCP: Masa loading elemen terbesar—Gzip bantu tapi optimasi imej juga penting.

  • Total Blocking Time: Fail JS besar, masa loading dan masa proses sama-sama penting.

Masalah Biasa dan Cara Penyelesaian

Gzip Aktif Tapi Fail Tidak Dimampatkan

Periksa gzip_types. Setting default Nginx hanya mampat text/html. Untuk CSS, JS, JSON, tambah MIME yang sesuai. Fail terlalu kecil (gzip_min_length) juga tidak dimampatkan.

CPU Meningkat

Turunkan gzip_comp_level. Level 3-4 biasanya cukup. Untuk trafik sangat tinggi, pertimbang CDN mampatan atau static pre-compression.

Content-Encoding Hilang Selepas CDN

Semak setting compression di panel CDN. Kadang-kadang Gzip tidak aktif secara default atau hanya untuk fail tertentu. Uji header dari origin dan CDN berasingan.

Skor PageSpeed Tidak Naik Seperti Dijangka

Ini normal. Gzip hanya kurangkan saiz transfer. CSS blocking, JS tak digunakan, imej besar, script pihak ketiga dan hosting lemah masih boleh jadi bottleneck. Gzip ialah langkah asas, bukan penyelesaian semua masalah kelajuan.

Senarai Semak Penggunaan Gzip Yang Disyorkan

  • Ukur transfer utama pada homepage dan template penting dahulu.

  • Backup fail konfigurasi Nginx sebelum edit.

  • Aktifkan gzip on, gzip_vary on dan gzip_min_length 1024.

  • Tambah CSS, JS, JSON, XML, RSS dan SVG dalam gzip_types.

  • Set gzip_comp_level antara 4-6 untuk balance CPU.

  • Jangan mampatkan imej, video dan fail archive.

  • Test dengan nginx -t, reload selepas itu.

  • Sahkan Content-Encoding: gzip dengan Chrome DevTools, curl atau WebPageTest.

  • Jika guna CDN, pastikan Vary: Accept-Encoding dan compression CDN betul.

  • Selepas Gzip, optimasi imej, cache, database dan sumber hosting juga perlu.

Bila Gzip Tidak Cukup?

Ada keadaan di mana Gzip berfungsi, tetapi laman masih perlahan. Ini biasanya kerana kos proses/render, bukan transfer. Jika fail JS 1.5 MB jadi 400 KB selepas Gzip, browser masih perlu parse dan jalankan kod. Keluarkan JS tidak digunakan, lakukan code splitting, dan defer script yang tidak penting.

Jika imej utama 1 MB, Gzip tidak membantu. Tukar ke WebP/AVIF, saizkan dengan betul dan guna responsive image. Database perlahan, CPU lemah atau hosting kongsi ramai pun membataskan kesan Gzip. Di sini, perlu semak semula struktur hosting: pemilihan hosting berfokuskan prestasi.

Kesimpulan: Setting Kecil, Impak Besar

Gzip di Nginx ialah antara cara paling pantas, murah dan berkesan untuk kurangkan saiz laman serta penggunaan data. Setting yang tepat boleh hasilkan pengurangan 50-70% untuk HTML, CSS, JS, JSON dan XML. Ini bermakna loading lebih cepat, pengalaman pengguna lebih baik dan asas teknikal yang menyokong SEO.

Untuk hasil maksimum, gabungkan Gzip dengan cache, optimasi imej, hosting berkualiti, SSL terkini dan kod yang bersih. Di Hostragons, anda boleh bandingkan hosting, domain dan SSL untuk pilih pelan yang sesuai dengan keperluan prestasi laman anda: Hostragons penyelesaian hosting.

Soalan Lazim

Adakah Gzip di Nginx betul-betul mempercepatkan laman?

Ya. Gzip kurangkan saiz fail berasaskan teks, browser boleh download lebih cepat. HTML, CSS, JS dan JSON paling nampak kesan. Tapi, optimasi imej, cache dan prestasi server juga penting.

Berapa tahap mampatan Gzip patut dipilih?

Untuk production, gzip_comp_level 4, 5 atau 6 paling ideal. Level lebih tinggi beri sedikit penjimatan, namun pakai lebih banyak CPU. Untuk laman trafik tinggi, balance lebih penting dari squeeze maksimum.

Adakah Gzip boleh mampatkan imej?

Sebenarnya boleh, tapi JPEG, PNG, WebP, AVIF dan MP4 sudah dimampatkan. Gzip tidak beri hasil bermakna untuk fail jenis ini. Untuk imej, guna format betul, saizkan, lazy load dan CDN.

Boleh guna Gzip dan Brotli serentak?

Boleh. Dengan setting betul, browser akan pilih Brotli jika sokong, atau Gzip jika tidak. Brotli biasanya lebih baik, tapi perlu modul tambahan di Nginx. Gzip cara paling mudah dan universal.

Bagaimana nak semak Gzip sudah aktif?

Di Chrome DevTools Network, pilih fail dan lihat Content-Encoding: gzip dalam response headers. curl dan WebPageTest juga boleh digunakan. Jika Transferred jauh lebih kecil dari resource size, Gzip memang berfungsi.

Kongsikan artikel ini:

Pasukan Hostragons

Panduan terkini daripada pasukan pakar kami tentang pengehosan, pelayan dan nama domain. Mari kita cari penyelesaian yang tepat untuk projek anda bersama-sama.

Hubungi Kami