Forum Discussion
irule VS http profille
I have one interesting question which confuse me a lot today since I learn something new in BIGIP.
My questions are:
1:If I removed one header in HTTP profile,but add same header back in irule,what is the outcome?
2:This question makes me think the priority of profile and irule ,which is evaluated firstly and the relationship between them if they manipulate the same data?For example ,I exclude .htm from compression in profile,but enable compression of it in irule.................
I give it a test:
root@(bigip1)(cfg-sync Standalone)(Active)(/Common)(tmos) list ltm profile http customer_http ltm profile http customer_http { app-service none defaults-from http header-erase Headertest proxy-type reverse } root@(bigip1)(cfg-sync Standalone)(Active)(/Common)(tmos) list ltm rule http_header_test ltm rule http_header_test { when HTTP_REQUEST { HTTP::header insert "Headertest" "123" }
}
Then test with curl 10.1.1.73 -H "Headertest: 123", from the capture it shows http header Headertest still in the request.
- he_qiang_137361Historic F5 Account
I give it a test:
root@(bigip1)(cfg-sync Standalone)(Active)(/Common)(tmos) list ltm profile http customer_http ltm profile http customer_http { app-service none defaults-from http header-erase Headertest proxy-type reverse } root@(bigip1)(cfg-sync Standalone)(Active)(/Common)(tmos) list ltm rule http_header_test ltm rule http_header_test { when HTTP_REQUEST { HTTP::header insert "Headertest" "123" }
}
Then test with curl 10.1.1.73 -H "Headertest: 123", from the capture it shows http header Headertest still in the request.
Hi Robbie,
- Robert_47833Altostratus
thanks team it seems irule always win. the exact case which indicate me to ask this is : web server in my company doesn't follow HTTP protocol,if it see no accept-coding in request,it will compress response as gzip ,then send back.but if the accept-coding is shdc,web server will not compress. all I want to do is teach web server not to compress ....
so : if I disable accepr-codeing in http compression profile,then insert accept-coding:shdc in request when send to server for specific uri list or content list.
Does it work?
Besides this:I found uri list /content list is not as I expect.
in order to make /xyz* work ,it seems I need to add /xyz.* in uri list ,and add content type in content list,so confuing
Correct me if I am wrong
Hi Robbie,
the iRule would look as follows:when HTTP_REQUEST { if {[HTTP::header exists Accept-Encoding]} { HTTP::header replace Accept-Encoding shdc } }
Regarding the syntax of path specification: your sample shows a regular expression ".*" which matches any number of any characters.
Thanks, Stephan- Robert_47833Altostratus
Hi,Stephan suppose I want to compress uri starts with /xyz[any-thing-behind] ,what is the right uri list and content list to achieve this? From my test,uri list and content list compose the exact object F5 will compress.
For example,if I only add /xyz.* in uri list while leave content list unconfigured,F5 doesn't compress .... I am confused by this....
- Hi Robbie, what TMOS version are you using and do you want to split control on compression between http/acceleration profile and iRule? Thanks, Stephan
- Robert_47833Altostratus11.4 I want to use compression profile to achieve compression,instead of irule. hope u can give me advce, I am not sure how much performance it can imporve if compression is done in F5
- he_qiang_137361Historic F5 Account
Hi Robbie,
You can modify the iRule as below:
when HTTP_REQUEST { if {[HTTP::header exists Accept-Encoding] and [string tolower [HTTP::uri]] contains "/xyz" } { HTTP::header replace Accept-Encoding shdc } }
It'll replace the header if the URI contains /xyz.
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