Konfigurasi Gzip Nginx


Konfigurasi Gzip Nginx - Salah satu cara untuk menurunkan size transfer data antara web server dan client side yaitu dengan menyediakan fitur compresi pada web server. Nginx secara default sudah menyediakan module gzip sebagai add-ons, sehingga kita hanya perlu mengaktifkannya.  Dengan mengaktifkan module gzip pada nginx, dapat menurunkan ukuran size pada file yang di load, sehingga proses transfer data menjadi lebih cepat.

Baca Juga :
Install nginx source di centos 7
Konfigurasi openssl nginx di centos 7 

Setelah kita mengaktifkan mod_ssl pada nginx, di kesempatan kali ini www.dimasrio.com akan menjelaskan bagaimana cara konfigurasi gzip nginx di centos7.

Konfigurasi Gzip Nginx

Masih melanjutkan konfigurasi sebelumnya, pada contoh kali saya akan menyediakan sebuah file css dengan ukuran lebih dari 100kb.
mkdir /opt/nginx/html/assets
cd /opt/nginx/html/assets
wget https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css
Tambahkan configurasi untuk mengaktifkan gzip pada dimzrio-com.conf.
nano /opt/nginx/conf/vhosts/dimzrio-com.conf
Content:
server {
listen 80;
listen 443 ssl http2;
access_log /var/log/nginx/dimzrio-access.log main;
error_log /var/log/nginx/dimzrio-error.log;
server_name dimzrio.com;

# SSL Config #
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate /opt/nginx/ssl/nginx.crt;
ssl_certificate_key /opt/nginx/ssl/nginx.key;
ssl_session_timeout 5m;
ssl_session_cache shared:TLS:10m;
ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA512:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:ECDH+AESGCM:ECDH+AES256:DH+AESGCM:DH+AES256:RSA+AESGCM:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;
ssl_prefer_server_ciphers on;

gzip on;

gzip_disable "msie6";

gzip_proxied any;
gzip_comp_level 7;
gzip_min_length 100;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;

location / {
index index.html;
root /opt/nginx/html;
}

location ˜*\.(css|map|js|json|xml)$ {
root /opt/nginx/html/assets;
}
}
Perintah gzip di atas sebagai berikut.

  • gzip_disable msie6 : Digunakan untuk menonaktifkan gzip pada internet explorer version 6.
  • gzip_proxied any : Digunakan untuk menerima semuga request dari traffic yg menggunakan semua jenis proxy. 
  • gzip_comp_level : Level compresi (1 sampai 9), nilai 7 dapat menurunkan kurang lebih 70% size.
  • gzip_min_length : Batas minimum yang digunakan untuk bypass gzip. Jika file kurang dari 100kb maka akan di abaikan.
  • gzip_types : Jenis file yang akan di compress.
Selanjutnya tambahkan $gzip_ratio pada format log agar file yang dilakukan compress terlihat pada log.
nano /opt/nginx/conf/nginx.conf
Content:
user nginx;
worker_processes 1;

events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$gzip_ratio"';

sendfile on;
tcp_nopush on;
keepalive_timeout 65;

include vhosts/*.conf;
}
Reload nginx.
/opt/nginx/sbin/nginx -s reload
Setelah service nginx di reload, lakukan uji coba pada browser dengan mode inspect dengan mengakses url berikut.
https://dimzrio.com/assets/bootstrap.min.css
Output:





Dari output di atas, gzip sudah berfungsi dengan baik di nginx. Terlihat size dari file bootstrap.min.css yang semula berukuran 141kb di load menjadi 20.1kb.

Demikian tutorial nginx kali ini mengenai konfigurasi gzip nginx di centos 7. Semoga bermanfaat bagi kita semua dan selamat mencoba.!!!


EmoticonEmoticon