Hai sobat sekolahlinux jumpa lagi kali ini kita akan membahas soal proxy caching pada nginx, proxy caching sendiri bisa dimanfaatkan ketika kita membuat sebuah server cdn, parameter yang digunakan untuk konfigurasinya juga berbeda dengan konfigurasi caching pada pure nginx, karen disini kita menggunakan nginx sebagai reverse proxy. nginx yang saya gunakan adalah nginx 1.9.x atau lebih, tapi jika kalian menggunakan dibawahnya seharusnya masih bisa.
“sebelum menerapkan cara dibawah pastikan bahwa web server yang di reverse oleh nginx juga sudah menerapkan rule caching, dalam kasus ini adalah apache, karena disini nginx hanya meneruskan rule cache yang diterapkan apache”
tambahkan path dibawah ini didalam http {
proxy_cache_path /var/cache/nginx/sekolahlinux levels=1:2 keys_zone=sekolahlinux:10m inactive=24h max_size=1g;
lalu tambahkan paramater ini juga didalam server { .. location / {
proxy_cache sekolahlinux; add_header X-Proxy-Cache $upstream_cache_status;
nah jika digabung maka kurang lebih peletakan paramater diatas didalam 1 buah config full seperti dibawah ini
proxy_cache_path /var/cache/nginx/sekolahlinux levels=1:2 keys_zone=sekolahlinux:10m inactive=60m; proxy_cache_key "$scheme$request_method$host$request_uri"; server { client_max_body_size 40M; listen 80; server_name sekolahlinux.com; client_body_timeout 12; client_header_timeout 12; keepalive_timeout 15; send_timeout 10; location / { proxy_cache sekolahlinux; add_header X-Proxy-Cache $upstream_cache_status; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://sekolahlinux.com:1108; proxy_redirect off; }
jika sudah jangan lupa di restart nginx nya, berikut ini beberapa penjelasan dari parameter diatas
- proxy_cache_path: adalah letak folder dimana nantinya hasil cache di tempatkan, didalamnya ada keys_zone=sekolahlinux:10m yang mana nantinya sekolahlinux bisa dipanggil oleh proxy_cache, 10m setelan sekolahlinux adalah 10 megabyte, yang mana 1MB zone dapat memuat 8000 keys and meta data, selain itu 10m disini juga berarti 10 menit.
- proxy_cache: digunakan untuk memanggil keys_zone, yaitu sekolahlinux
jika kalian ini nantinya file statik nya diberi masa waktu expires kalian bisa menambahkan command dibawah ini didalam parameter server { .. location / {
if ($request_uri ~* ".(jpg|jpeg|gif|gz|zip|flv|rar|wmv|avi|css|swf|png|htc|ico|mpeg|mpg|txt|mp3|mov|js)(\?v=[0-9.]+)?$") { expires 30d; access_log off; break; }
maka secara keseluruhan file conf nya menjadi seperti dibawah ini
proxy_cache_path /var/cache/nginx/sekolahlinux levels=1:2 keys_zone=sekolahlinux:10m inactive=60m; proxy_cache_key "$scheme$request_method$host$request_uri"; server { client_max_body_size 40M; listen 80; server_name sekolahlinux.com; client_body_timeout 12; client_header_timeout 12; keepalive_timeout 15; send_timeout 10; location / { if ($request_uri ~* ".(jpg|jpeg|gif|gz|zip|flv|rar|wmv|avi|css|swf|png|htc|ico|mpeg|mpg|txt|mp3|mov|js)(\?v=[0-9.]+)?$") { expires 30d; access_log off; break; } proxy_cache sekolahlinux; add_header X-Proxy-Cache $upstream_cache_status; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://sekolahlinux.com:1108; proxy_redirect off; }
sekian tutorial kali ini, jika ada yang ini ditanyakan silahkan comment dibawah ya 😀