Forum Discussion

David_Tumlin's avatar
David_Tumlin
Icon for Nimbostratus rankNimbostratus
Sep 30, 2010

Another ProxyPass question

I am using the ProxyPass iRule (v10) to perform reverse proxy for an SAP portal. The developers want the site to have a single host name exposed to the Internet, but have multiple server pools on the backside (i.e. www.customer.com/crm and www.customer.com/prt on Internet mapped to crm.customer.net and portal.customer.net on internal network.) The portal pages contain links to multiple internal hosts that need to be rewritten (via STREAM command). The ProxyPass rule seems to only rewrite the hosts called in a previous request, not all of them.

 

 

My question is: is there a more elegant approach to this than entering all combinations in the STREAM::expression command (STREAM::expression \"@$host_serverside$path_serverside@$host_clientside$path_clientside@ @portal.customer.net@www.customer.com/prt/@ @crm.customer.net@www.customer.com/crm/@\ ). I currently have around 20 rewrites per portal with potential for more. This modification works, but requires administrators to edit the iRule and data group when hosts change.

 

 

Any suggestions would be appreciated.

 

 

 

 

 

1 Reply

  • Hi David,

     

     

    One way to make that slightly more user-friendly would be to parse the datagroup host entries into a static:: variable in RULE_INIT and then use that variable in the STREAM::expression command. This would require the admins to modify the RULE_INIT event and save the iRule when they update the datagroup though. The RULE_INIT change could be adding or removing a blank line so that RULE_INIT is re-run.

     

     

    Aaron