Forum Discussion
Absarkhan_15403
Aug 04, 2014Nimbostratus
Triggering an action based on TCP Connections
Is it possible to trigger an action on the base of how many tcp connection a specific VIP has under a http request? If yes how to use the variable in order to define it?
Many Thanks in advance ...
- Aug 04, 2014
Can the sessions be replaced with connectionswith the way you are prescribing?
if you want to track tcp connection, you may increase the counter in CLIENT_ACCEPTED and decrease it in CLIENT_CLOSED.
nitass_89166
Noctilucent
Is it possible to trigger an action on the base of how many tcp connection a specific VIP has under a http request?
what action do you want?
you can count number of current tcp connections to virtual server using table sessiondb (table irule command) and take an action when the number reaches threshold.
Absarkhan_15403
Aug 04, 2014Nimbostratus
when HTTP_REQUEST priority 1 {
set static::maxActiveClients "[class search -all -value datagroup_selfridges_waitingroom starts_with "max_active_clients"]"
set subtableName "sessionLimit"
set sessionCookieName "[class search -all -value datagroup_selfridges_waitingroom starts_with "session_cookie_prefix"]"
set holdingPage "[class search -all -value datagroup_selfridges_waitingroom starts_with "holding_page_url"]"
set static::sessionTimeout "[class search -all -value datagroup_selfridges_waitingroom starts_with "session_timeout"]"
set need_cookie 0
if {[HTTP::cookie exists $sessionCookieName]} {
set client_id [HTTP::cookie $sessionCookieName]
set sessiondata [table lookup -subtable $subtableName $client_id]
if { $sessiondata != "" } {
log local0. "Valid session $client_id - continuing"
return
}
}
log local0. "No session. Checking for free slot (Max $static::maxActiveClients)"
set sessionCount [table keys -subtable $subtableName -count]
log local0. "No session. Checking for free slot (Current $sessionCount)"
if {$sessionCount < $static::maxActiveClients} {
set need_cookie 1
set client_id [format "%08d" [expr { int(1000000000 * rand()) }]]
set sessionValue [IP::client_addr]
table add -subtable $subtableName $client_id $sessionValue $static::sessionTimeout
log local0. "New Session ($client_id) added value $sessionValue Timeout $static::sessionTimeout"
} else {
HTTP::redirect $holdingPage
}
}
when HTTP_RESPONSE priority 1 {
if {$need_cookie == 1} {
HTTP::cookie insert name $sessionCookieName value $client_id path "/"
}
}
Recent Discussions
Related Content
DevCentral Quicklinks
* 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
Discover DevCentral Connects