Nur Hamim
Nur Hamim Anak desa yang gemar berkomunitas, suka menulis dan mencari hal baru seputar Unix/Linux dan Cloud. Saat ini sedang menempuh pendidikan S1 TI di Unindra dan kebetulan bekerja di PT Biznet GIO Nusantara

Cara Enable Gzip Compression pada Nginx di CentOS 8


Cara Enable Gzip Compression pada Nginx di CentOS 8

Gzip compression salah satu cara yang dapat kita gunakan untuk mengoptimalisasi website dynamic ataupun static.

Misalnya Anda menggunakan CMS WordPress untuk kebutuhan website Anda tentunya di CMS WordPress banyak sekali file – file html, css, javascript baik dari themes dan plugin dari CMS WordPress itu sendiri.

Dengan begitu akses ke sisi CMS WordPress kita akan membutuhkan waktu dan bandwith yang lebih besar oleh karena itu gzip ada sebagai solusinya.

Fungsi gzip sendiri yaitu mengecilkan ukuran file yang akan ditransfer, dengan kecilnya ukuran file maka berdampak pada semakin cepatnya waktu loading website serta hemat bandwith. Seperti meng-compress file biasa menjadi file zip.

Disini kami akan mencontohkannya pada website yang menggunakan CMS WordPress, jika Anda ingin melihat cara instalasi WordPress di Nginx dapat merujuk pada link berikut: Cara Instalasi WordPress menggunakan Nginx di CentOS 8

Berikut URL website yang akan dijadikan sebagai contoh: https://wordpress.nurhamim.my.id/ jika di curl, saat ini website tidak memiliki gzip

Lalu, untuk aktivasi gzip di Nginx sangatlah mudah Anda hanya perlu menambahkan beberapa script berikut ke dalam server block Nginx WordPress Anda contohnya:

1
2
[root@tutorial ~]#
[root@tutorial ~]# vim /etc/nginx/conf.d/wordpress.conf

Tambahkan beberapa script gzip berikut

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
gzip on;
gzip_comp_level 5;
gzip_min_length 256;
gzip_proxied any;
gzip_vary on;
gzip_types
   	application/atom+xml
    	application/javascript
	application/json
    	application/ld+json
    	application/manifest+json
    	application/rss+xml
   	application/vnd.geo+json
    	application/vnd.ms-fontobject
    	application/x-font-ttf
    	application/x-web-app-manifest+json
    	application/xhtml+xml
    	application/xml
    	font/opentype
    	image/bmp
   	image/svg+xml
    	image/x-icon
    	text/cache-manifest
    	text/css
   	text/plain
    	text/vcard
    	text/vnd.rim.location.xloc
    	text/vtt
    	text/x-component
    	text/x-cross-domain-policy;

Berikut full konfigurasi server block Nginx nya

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
server {
        listen 80;
        listen 443 ssl http2;
        server_name wordpress.nurhamim.my.id;
        root /usr/share/nginx/wordpress;

        index index.php index.html index.htm;

        ssl_certificate /etc/letsencrypt/live/wordpress.nurhamim.my.id/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/wordpress.nurhamim.my.id/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/wordpress.nurhamim.my.id/chain.pem;
        include snippets/ssl.conf;
        include snippets/letsencrypt.conf;

        gzip on;
        gzip_comp_level 5;
        gzip_min_length 256;
        gzip_proxied any;
        gzip_vary on;
        gzip_types
                application/atom+xml
                application/javascript
                application/json
                application/ld+json
                application/manifest+json
                application/rss+xml
                application/vnd.geo+json
                application/vnd.ms-fontobject
                application/x-font-ttf
                application/x-web-app-manifest+json
                application/xhtml+xml
                application/xml
                font/opentype
                image/bmp
                image/svg+xml
                image/x-icon
                text/cache-manifest
                text/css
                text/plain
                text/vcard
                text/vnd.rim.location.xloc
                text/vtt
                text/x-component
                text/x-cross-domain-policy;


        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php {
                include fastcgi.conf;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php-fpm/www.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

Sebagai tambahan informasi server block di Atas sudah di sertai konfigurasi SSL dari Letsencrypt yang dapat Anda lihat cara nya pada tutorial berikut: Cara Instalasi SSL Letsencrypt pada WordPress Menggunakan Nginx di CentOS 8

Selanjutnya pastikan tidak ada konfigurasi yang salah di Nginx dan silakan reload nginx

1
2
3
4
5
6
7
[root@tutorial ~]#
[root@tutorial ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@tutorial ~]#
[root@tutorial ~]# nginx -s reload
[root@tutorial ~]#

Silakan dicoba kembali curl seperti diawah seharusnya akan tampil gzip seperti berikut ini

Jika di cek menggunakan tools gzip online berikut: https://varvy.com/tools/gzip/ hasilnya akan seperti berikut ini

Dari data diatas dapat di lihat terbanyak file original sebesar 26150 (uncomppressed gzip) dan di compressed menggunakan gzip menjadi _703_5.

Saat ini Anda sudah enable gzip di Nginx.

Selamat mencoba 😁

comments powered by Disqus