Forum Discussion
Insert header when item added to ramcache
Haven't been in here for a looong time... :-7
Trying to store a header value received from pool member in a new header as that item is added to the ramcache (so it'll be present when that item is subsequently retrieved from the ramcache), but using CACHE::header insert NewHeader $value in the CACHE_UPDATE event doesn't seem to work (13.1) - has anyone used it successfully?
- Leslie_HubertusRet. Employee
Hey Hendel - welcome back! I see nobody has come to answer this yet, so I'll see if one of my colleagues can come in to help.
- HendelNimbostratus
Thanks, I'd appreciate that - seems like this ought to be pretty simple, so I'm probably just holding the wrong end of the metaphorical wrench or something
- JRahmAdmin
Hi Hendel, I haven't done much with the cache in iRules, but your format for setting appears to be correct. That said, can you post a sanitized version of your iRule and whether you have any other iRules or policies that might be interfering? How are you validating that it is not working? Could use CACHE::trace to see if anything is at least being set by the system before hitting a tcpdump on the wire.
- HendelNimbostratus
There aren't any other rules or policies. I'd tried both insert and replace, but the logging in CACHE_RESPONSE never showed any effect from either of the UPDATE commands.
when CACHE_UPDATE { CACHE::header insert X-LTM-Cached $cache # CACHE::header replace Cache-Control $cache } when CACHE_RESPONSE { log local0. "[IP::client_addr] path:$path cache:$cache [CACHE::headers]" } when HTTP_REQUEST { set path [string tolower [HTTP::path]] if { !($path ends_with ".js") } { CACHE::disable } else { HTTP::uri [HTTP::path] CACHE::enable } } when HTTP_RESPONSE { set cache [HTTP::header value Cache-Control] HTTP::header replace Cache-Control public }
- JRahmAdmin
I updated the formatting to make it a little easier to read through...let me reach out internally to see if anyone has worked with the cache commands before, I'm not quite sure what the flow should be here.
- HendelNimbostratus
I'm able to log CACHE::headers when I retrieve objects from the cache, it's just that they only come out with all of their original headers/values as sent by the pool member, not the ones I was trying to insert and/or modify as they went in to the cache.
- John_AlamEmployee
i used this version and was able to change the headers Cache-Control. I was also able to insert headers. No dynamic values though.
when CACHE_UPDATE { CACHE::header insert X-LTM-Cached "test" CACHE::header replace Cache-Control "private" log local0. "Cache update- path:$path cache: [CACHE::headers]" }
But you have to invalidate the cache before every expected change of behavior. You do that from the CLI with this command:
tmsh delete /ltm profile ramcache optimized-caching
and reload page twice. First reload will not have the cached version.
HTH
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com