Seringnya saya menggunakan Nginx sebagai web server untuk WordPress dan walaupun pada plugin cache ada fitur pengaturan cache konten statis tapi sangat tidak disarankan karena diproses lewat PHP. Kecuali kita tidak memiliki akses ke Nginx. Nah… saya ada satu kebiasaan dan baru ingat belum pernah saya share disini, yakni membuat konfigurasi cache konten langsung dalam Nginx. Ini menjamin kecepatan melayankan juga performanya lebih optimal.

Ini bukan hal yang sulit kok, yang kita atur sebenarnya adalah sampai kapan konten statis tersebut boleh dicache oleh browser atau reverse proxy/CDN (akan saya bahas lain kali) dan jelas berhubungan nantinya misal kita layankan cache server di depan server aslinya.

Yang pasti silahkan isikan potongan kode berikut kedalam konfigurasi virtual host atau buat file konfigurasi baru (misal: cache_konten.conf) dan panggil dalam konfigurasi Nginx lainnya:

location ~* \.(?:manifest|appcache|html?|xml|json)$ {
  expires -1;
}

location ~* \.(?:rss|atom)$ {
  expires 1h;
  add_header Cache-Control "public";
}

location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
  expires 1M;
  access_log off;
  add_header Cache-Control "public";
}

location ~* \.(?:css|js)$ {
  expires 1y;
  access_log off;
  add_header Cache-Control "public";
}

Kombinasikan dengan pengaturan kompresi GZIP dalam Nginx dijamin lebih mantap. 😀 Oh ya, ditambahkan header "public" supaya sistem selain browser bisa menyimpan cachenya. Sebaliknya kalau anda gunakan header "private" maka hanya browser yang diperbolehkan.