Thursday, March 8, 2012

F5 Bigip Ltm irule ile cache-control header manipülasyonu (max-age)


Öncelikle belirli bir datagroup belirleyerek, client tarafı cacheletilmek istenen dosya çeşitlerini data group içine aşağıdaki string şekli ile girerek listeyi oluşturuyoruz.

image/jpg
image/png
text/css
text/js
benim örneğimdeki data group ismi, static_content_types_class

Sonra irule'umuzu aşağıdaki gibi vererek, bu datagroup içindeki filetype'a match eden dosya requestleri için response headerında max-age=354600 yani 4 gün cachede tut manipülesi yaparak client'a response döndürüyoruz.

when HTTP_RESPONSE {
if {[matchclass [HTTP::header Content-Type] equals $::static_content_types_class]}{
HTTP::header replace "Cache-Control" "public, max-age=354600"
}
}

Bu örnek gibi bir çok header manipülasyon örneklerini bu şekilde ve paramlar ile gerçekleştirebilirsiniz.

Header manipüle ediliyor ve max-age ekleniyor. jpg için
curl http://1.1.1.1/ca/yyyy/dtmdHdddddd/k_80.jpg -H "Host:xxx.com" -I
HTTP/1.1 200 OK
Date: Thu, 08 Mar 2012 13:19:06 GMT
Server: Apache
Content-Length: 3061
Vary: Accept-Encoding
Cache-Control: public, max-age=354600
Content-Type: image/jpeg

Gif için ise datagroupda yer almadığından böyle bir eklenti söz konusu değil.
curl http://1.1.1.1/xa/dsa/loader.gif -H "Host:x.x.x.com" -I
HTTP/1.1 200 OK
Date: Thu, 08 Mar 2012 13:21:42 GMT
Server: Apache
Last-Modified: Fri, 12 Nov 2010 07:37:21 GMT
Content-Length: 853
Content-Type: image/gif

No comments:

Post a Comment