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 😁