Sure thing Aidan, I have included a basic topology so you can understand what I’m trying to achieve. In short there are three SharePoint web services, I have been asked to create a separate Virtual server for each one even though they are served off the same severs. You’ll notice there are a couple of extra pools, these are used for content checks. The servers need to query their own front end to ensure the content is not stale and to do so must be load balanced to themselves. Request Rule $teamsite_pool = "Sharepoint Teamsite Pool"; $companynet_pool = "Sharepoint companynet Pool"; $mysite_pool = "Sharepoint Mysite Pool"; $transparent_session_persistence = "Sharepoint Cookie Insert Persistence"; $url = http.getheader( "Host"); $sessiondata = ""; # These rules deal with content checks, SP_Server_1 and 02 need to be load balanced to themselves if( string.ipmaskmatch( request.getremoteip(), "172.172.10.20" ) && http.getheader( "Host" ) == "teamsites.company.com.au" ){ pool.use( "SharePoint CC SP_Server_1" ); } else if( string.ipmaskmatch( request.getremoteip(), "172.172.10.20" ) && http.getheader( "Host" ) == "teamsites" ){ pool.use( "SharePoint CC SP_Server_1" ); } else if( string.ipmaskmatch( request.getremoteip(), "172.172.10.20" ) && http.getheader( "Host" ) == "companynet.company.com.au" ){ pool.use( "SharePoint CC SP_Server_1" ); } else if( string.ipmaskmatch( request.getremoteip(), "172.172.10.20" ) && http.getheader( "Host" ) == "companynet" ){ pool.use( "SharePoint CC SP_Server_1" ); } else if( string.ipmaskmatch( request.getremoteip(), "172.172.10.20" ) && http.getheader( "Host" ) == "mysite.company.com.au" ){ pool.use( "SharePoint CC SP_Server_1" ); } else if( string.ipmaskmatch( request.getremoteip(), "172.172.10.20" ) && http.getheader( "Host" ) == "mysite" ){ pool.use( "SharePoint CC SP_Server_1" ); } else if( string.ipmaskmatch( request.getremoteip(), "172.172.10.30" ) && http.getheader( "Host" ) == "teamsites.company.com.au" ){ pool.use( "SharePoint CC SP_Server_2" ); } else if( string.ipmaskmatch( request.getremoteip(), "172.172.10.30" ) && http.getheader( "Host" ) == "teamsites" ){ pool.use( "SharePoint CC SP_Server_2" ); } else if( string.ipmaskmatch( request.getremoteip(), "172.172.10.30" ) && http.getheader( "Host" ) == "companynet.company.com.au" ){ pool.use( "SharePoint CC SP_Server_2" ); } else if( string.ipmaskmatch( request.getremoteip(), "172.172.10.30" ) && http.getheader( "Host" ) == "companynet" ){ pool.use( "SharePoint CC SP_Server_2" ); } else if( string.ipmaskmatch( request.getremoteip(), "172.172.10.30" ) && http.getheader( "Host" ) == "mysite.company.com.au" ){ pool.use( "SharePoint CC SP_Server_2" ); } else if( string.ipmaskmatch( request.getremoteip(), "172.172.10.30" ) && http.getheader( "Host" ) == "mysite" ){ pool.use( "SharePoint CC SP_Server_2" ); } # End of content check rules # Start of normal traffic rules else if( $url == "teamsites" ) { $sessiondata = "none"; pool.use( "SharePoint Teamsites Pool" ); } else if( $url == "teamsites.company.com.au" ) { $sessiondata = "none"; pool.use( "SharePoint Teamsites Pool" ); } else if( string.containsI( $url, "companynet" ) ) { $sessiondata = "none"; pool.use( "SharePoint companynet Pool" ); } else if( string.containsI( $url, "companynet.company.com.au" ) ) { $sessiondata = "none"; pool.use( "SharePoint companynet Pool" ); } else if( string.containsI( $url, "mysite" ) ) { $sessiondata = "none"; pool.use( "SharePoint Mysite Pool" ); } else if( string.containsI( $url, "mysite.company.com.au" ) ) { $sessiondata = "none"; pool.use( "SharePoint Mysite Pool" ); } if( $sessiondata != "none" ) { if( $sessiondata ) { connection.setPersistence( $transparent_session_persistence ); } } Response Rule $class = connection.getPersistence(); log.info ($class);
... View more