Forum Discussion
disable irule process for the request not for the whole tcp connection
- Jul 26, 2015
Understood this topic is discussing some race conditions applied on iRule http events;
client 1 --> http request1 --> F5 --> http request1 --> server client 1 --> http request2 --> F5 --> http request2 --> server client 1 --> http request3 --> F5 --> http request3 --> server client 1 <-- http request1 <-- F5 <-- http response1 <-- server client 1 <-- http request2 <-- F5 <-- http response2 <-- server client 1 <-- http request3 <-- F5 <-- http response3 <-- server
From LTM perspective, LTM will not process the subsequent request (but rather put it on the request queue instead)until first response is back from backend pool memeber.
Even pipelining is enabled on client side and multiple requests come in at same time, LTM will still serialize them and process them according to the sequence (FIFO).
So in our case, variable has been set in request 1 will not be messed up even request 2 comes in earlier than response 1.
rule irule1 {
when HTTP_REQUEST {
set irule_skip 0
if { conditions } {
pool http
set irule_skip 1
}
}
}
rule irule2 {
when HTTP_REQUEST {
if { $irule_skip } {
return
}
}
}
what I ask is:
suppose there are http request traffic from client to F5
1:when the first http request traffic hit irule ,and set irule_skip as 0 then F5 distribute this request to backend server. 2:before backend server respond this first request traffic, the second http request traffic hit this VIP . 3:so the variable irule_skip is reset by the second http request traffic, right?
http request traffic: the real request, not the event in irule.
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