vADC Forum

Reply
Occasional Contributor
Posts: 15
Registered: ‎11-29-2012
Accepted Solution

How to set no-cache for a host/URL with TS when caching is enabled

Hi @ all,

once again a question ...

I´ve a virtual Server with Content caching enabled, all is working fine ...

This virtual Server is used by many pools, defined via TS-Rules,

for eg.




if( string.contains( http.getheader( "host" ), "test.com" ) ){


        pool.use( "pool-1" );



if( string.contains( http.getheader( "host" ), "anothertest.com" ) ){


        pool.use( "pool-2" );



and so on.

Now I want to set "no-cache" only for host test.com for example ...

so overall caching should be enabled, but for this host it should be disabled.

I found in TS-Guide the Syntax "http.cache.disable()

but I don´t know the exact Syntax to use ...

perhaps somebody could help me here ?

Regards,

Michael

Brocadian
Posts: 58
Registered: ‎11-29-2012

Re: How to set no-cache for a host/URL with TS when caching is enabled

Take a look at Feature Brief: Stingray Content Caching by for an example and more information on Content Caching.



$hostheader = http.getHostHeader();



if( $hostheader == "www.example.com" ) {


   pool.select( "Pool-1" );


   http.cache.disable();


} else if ( $hostheader == "www.test.com" ) {


   pool.select( "Pool-2" );


}


* Note the change in the pool command to use the the pool.select function.  The pool.use function Selects a pool to load-balance this connection with, and stops processing any more rules

Occasional Contributor
Posts: 15
Registered: ‎11-29-2012

Re: Re: How to set no-cache for a host/URL with TS when caching is enabled

Hi David,

thanks for that, it seems to be working ...

another question for almost the same problem ...

When a website has a certain cookie inside, for me, named "somename", and I want this site not to be cached,

hope, I can realize that with TS too ... ?

My idea was something like this:


if( http.getcookie( "" ) == "somename" ){



        http.setResponseHeader( "Cache-Control", "no-cache" );


}



or it´s better with hostname


if( http.getheader( "host" ) == "test.com"


        && http.getcookie( "" ) == "somename" ){


        http.setResponseHeader( "Cache-Control", "no-cache" );



}



... second idea:


if( http.getheader( "host" ) == "test.com"


        && http.getcookie( "" ) == "somename" ){


        http.cache.disable(); 


}




Which one is the best for my case?

Regards,

Michael

Contributor
Posts: 29
Registered: ‎10-19-2013

Re: How to set no-cache for a host/URL with TS when caching is enabled

depending on your requirements ("do not cache if a named cookie is set") , my solution would be:


if (http.getCookie( "somename") != "" ){


     http.cache.disable();


}


you have to use the name of the cookie as a parameter for http.getcookie, it will return a empty string if this cookie is not found.

Join the Community

Get quick and easy access to valuable resource designed to help you manage your Brocade Network.