I have a URL forex.mycomp.com:443/forex this URL use some Users.
to get access on sap10.company.comany.de:8445/forex on the realserver, now what I want to do is to display in the browser just forex.mycomp.com:443/forex and not to switch to sap10.company.comany.de:8445/forex, I did try to figure out, for example with the proxy pass iRule, but these are really complex things and I need help, maybe I could get a easy example iRule from someone which resolve my wishes. Other thing is I know that this use case didn't work together with a redirect ! So I search for a GOOD answer how can I solve this topic. I hope for a example iRule maybe from a User with a big knowledge in iRules, more than mine. It is all https traffic and a valid certificate is inside the VS.
I believe the following could be your solution but you need to make sure you have a pool configured named POOL-sap10-8445 with the appropriate pool members in it listening on port 8445 this way you don't have to feed a port location in the HOST field of the HTTP request.
when CLIENT_ACCEPTED {
set DEFAULT_POOL [LB::server pool]
}
when HTTP_REQUEST {
set HOST [string tolower [HTTP::host]]
set URI [string tolower [HTTP::uri]]
if { (($HOST eq "forex.mycomp.com") and ($URI eq "/forex")) } {
set SERVER_HOST [string map -nocase { "forex.mycomp.com" "sap10.company.comany.de"} [HTTP::host]]
HTTP::host $SERVER_HOST
pool POOL_sap10_8445
} else {
$DEFAULT_POOL
}
}
This configuration also assumes that you have a default pool configured on your virtual server so that any request not matching what you are concerned with goes to that pool.
as you already mentioned: Rewriting HTTP requests/responses and/or HTTP response payload becoming tricky, depending where the internal URLs are embedded. You can easily spend dozends of hours to figure out (slightly broken) application logic and rewrite HTTP request/responses as needed using LTM Policies or iRules.
Before you get angry or mad you may try two things:
1.) Contact the vendor/developer of the Web application and ask them: a.) If the web application can be adjusted to that it does not care which HOST-Name was used when accessing it? And b.) If site-internal redirects or internal URL references can be switched to "relative" URLs (aka. href="/somepath" instead of href="prot://hostname:port/somepath"). This is probably the best approach to solve your problem, since the web application itself would fix thier own issues.
2.) Try to use LTMs rewrite profiles to translate external/internal URIs. Compared to iRule based solutions, those rewrite profiles are easy to setup and may already solve your issues. You may still need to add some iRule code for edge cases where the rewrite profile was unable to translate. But lets see first...
Below is a LTM config you can use as starting point...