Forum Discussion
shawn306_84070
Oct 31, 2012Nimbostratus
My mistake. Here is the right one..
iRule to select pool and persistence method when all Exchange Client
Access HTTP-based services are accessed through the same BIG-IP virtual
server. This iRule will use an HTTP header inserted by a BIG-IP Edge
Gateway for persistence (if that header is present); otherwise it will
set persistence according to traditional methods.
CHANGE ALL POOL NAMES TO MATCH THOSE IN YOUR ENVIRONMENT.
when HTTP_REQUEST {
Offline Address Book and Autodiscover do not require persistence.
switch -glob -- [string tolower [HTTP::path]] {
"/microsoft-server-activesync" {
ActiveSync.
if { [HTTP::header exists "APM_session"] } {
persist uie [HTTP::header "APM_session"] 7200
} elseif { [HTTP::header exists "Authorization"] } {
persist uie [HTTP::header "Authorization"] 7200
} else {
persist source_addr
}
pool vs_EXCHANGE_2010_OWA_single_as_pool
COMPRESS::disable
CACHE::disable
return
}
"/owa*" {
Outlook Web Access
if { [HTTP::header exists "APM_session"] } {
persist uie [HTTP::header "APM_session"] 7200
} else {
persist cookie insert
}
pool vs_Exchange_2010_OWA_INT_single_owa_pool
return
}
"/ecp*" {
Exchange Control Panel.
if { [HTTP::header exists "APM_session"] } {
persist uie [HTTP::header "APM_session"] 7200
} else {
persist cookie insert
}
pool vs_Exchange_2010_OWA_INT_single_owa_pool
return
}
"/ews*" {
Exchange Web Services.
if { [HTTP::header exists "APM_session"] } {
persist uie [HTTP::header "APM_session"] 7200
} else {
persist source_addr
}
pool vs_Exchange_2010_OWA_INT_single_owa_pool
COMPRESS::disable
CACHE::disable
return
}
"/oab*" {
Offline Address Book.
pool vs_Exchange_2010_OWA_INT_single_owa_pool
return
}
"/autodiscover*" {
Autodiscover.
pool vs_Exchange_2010_OWA_INT_single_ad_pool
return
}
default {
This final section takes all traffic that has not otherwise
been accounted for and sends it to the pool for Outlook Web App
if { [HTTP::header exists "APM_session"] } {
persist uie [HTTP::header "APM_session"] 7200
} else {
persist source_addr
}
pool vs_EXCHANGE_2010_OWA_single_owa_pool
}
}
}
when HTTP_RESPONSE {
if { [string tolower [HTTP::header values "WWW-Authenticate"]] contains "negotiate"} {
ONECONNECT::reuse disable
ONECONNECT::detach disable
this command disables NTLM conn pool for connections where OneConnect has been disabled
NTLM::disable
}
this command rechunks encoded responses
if {[HTTP::header exists "Transfer-Encoding"]} {
HTTP::payload rechunk
}
}