cancel
Showing results for 
Search instead for 
Did you mean: 

LTM Masking URI

Aabuitrago
Altostratus
Altostratus

Hi everyone,

 

 

I'm trying to load balance tableau service.

 

I'm currently using apps.domain.com/ for multiple applications. The Vserver has an irule configured that assigns a different pool depending on the uri that the user specifies.

 

Example

apps.domain.com/app1

pool1

apps.domain.com/app2

pool2

 

I want to add tableau to the same vserver like this apps.domain.com/tableau but tableau doesn't use a uri, and the load of the application fails.

 

How can i mask tableau service using the uri /tableau even if in the tableau server that uri doesn't exist.

 

regards,

 

 

2 REPLIES 2

Heino
Cirrus
Cirrus

Question: would you need to rewrite responses from the tableau server?

If you do not need to replace values within the server response, then devcentral has an article about URI masking

 

If you follow the exampl from the article: Your irule will likely get a performance benefit from using HTTP::path instead of HTTP::uri. It is just less characters to process, no huge benefit.

Aabuitrago
Altostratus
Altostratus

Hi,

 

Thank you for your prompt response.

For tableau to work correctly, it use multiple URI's.

 

some of those are:

server01/#

server01/vzql

server01/t

 

How can i modify the iRule code to work for what I need

 

 when HTTP_REQUEST {

 set HOST [string tolower [HTTP::host]]

 set URI [string tolower [HTTP::uri]]

 if { $HOST contains "devtest.domain.com" } {

 #Disable SSL

 SSL::disable serverside

 }

 if { $URI contains "/wdev/wweb.ll?wsession" } {

 HTTP::uri [string map {/wdev/wweb.ll?wsession /wdev/wweb.ll?FoldSession} [HTTP::uri]]

 pool POOL-DEV2

 }

 }

 when HTTP_RESPONSE {

 if { [HTTP::header values Location] contains "/wdev/wweb.ll?FoldSession" } {

 HTTP::header replace Location [string map {/wdev/wweb.ll?FoldSession /wdev/wweb.ll?wsession} [HTTP::header value Location]]

 }

 }