Howto manage cache-control with mod_expire di Apache
Melihat dari cara kerja squid proxy, yaitu menyimpan suatu object di memory untuk periode tertentu. Jadi apabila dalam periode tersebut terdapat request maka squid tidak perlu akses ke sumbernya tapi langsung di ambil dari memory.
Ternyata di Apache juga bisa meningkatkan performa dan menghemat penggunaan bandwidth dengan menerapkan sistem seperti di squid proxy, yaitu melalui mod_expire
mod_expires merupakan modul yang memungkinkan kita bisa menetapkan waktu suatu object di cache oleh browser atau proxy cache.
Mod_expire di apache bisa diaktifkan sewaktu configure install :
- Apache 1.3.x: menambahkan options –enable-module=expires sewaktu ./configure
- Apache 2.0.x: menambahkan options –enable-expires sewaktu ./configure
kemudian tambahkan baris berikut di httpd.conf untuk meload module :
LoadModule expires_module modules/mod_expires.so
khusus untuk apache 1.3.x perlu juga ditambah baris berikut agar tidak error :
AddModule mod_expires.c
sedangkan untuk mengatur file apa saja dan berapa lama expires time-nya kita bisa gunakan perintah berikut :
<IfModule mod_expires.c> ExpiresActive on ExpiresByType image/gif "access plus 5 minutes" ExpiresDefault "access plus 1 days" </IfModule>
baris perintah di atas mendeklarasikan secara default semua file di webserver secara default expires di set selama 1 hari, sedangkan untuk file dengan type gif di set expires selama 5 menit.
bisa juga dideklarasikan di dalam <Directory></Directory>
dengan tujuan kita hanya akan menerapkan expires untuk semua file pada folder tertentu saja.
Atau bisa juga dengan mendefinisikan khusus untuk type file tertentu dengan cara :
<Directory “/var/www/htdocs”>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
ExpiresDefault A300
<FilesMatch “\.html$”>
ExpiresDefault A300
</FilesMatch>
<FilesMatch "\.(gif|jpg|png|js|css)$">
Expires A300
</FilesMatch>
</Directory>
catatan A300 artinya sama dengan access plus 300 seconds.
kemudian apache di restart, dan kita cek dengan browser access kemudian di lihat headernya apabila hasilnya seperti di bawah ini berarti mod expires sudah terinstall dengan baik :
HTTP/1.1 200 OK Date: Mon, 18 Oct 2004 12:14:02 GMT Server: Apache/1.3.41 (Unix) (Gentoo/Linux) Content-Location: index.html.en Vary: negotiate,accept-language,accept-charset TCN: choice Cache-Control: max-age=86400 Expires: Tue, 19 Oct 2004 12:14:02 GMT Last-Modified: Mon, 18 Oct 2004 11:39:02 GMT ETag: "173d347-5b0-4173ab56;4173ab58" Accept-Ranges: bytes Content-Length: 1456 Connection: close Content-Type: text/html Content-Language: en
kalau anda memakai linux bisa menggunakan browser text base, dengan perintah
lynx -head http://localhost
cara ini paling efektif untuk meningkatkan performa apache dan menghemat bandwidth terutama untuk file yang sifatnya statis seperti image, js dan css.