Forum Discussion
Kevin_Stewart
Feb 13, 2016Employee
It sounds like you're experiencing the "reverse proxy problem". Essentially, internal applications don't know that they're being proxied, so they return localized URLs, that the client inevitably cannot reach. Generally the best way to handle this issue is with a rewrite function. In your case it may just be that HTTP:// URLs need to be rewritten to Apply a generic STREAM profile to the virtual server and this iRule:
when HTTP_REQUEST {
STREAM::disable
HTTP::header remove Accept-Encoding
}
when HTTP_RESPONSE {
if { [HTTP::header exists Location] } {
HTTP::header replace Location [string map -nocase {"http://" "https://"} [HTTP::header Location]]
}
if { [HTTP::header Content-Type] contains "text" } {
STREAM::expression {@http://@https://@}
STREAM::enable
}
}
More information on the STREAM command can be found here: https://devcentral.f5.com/wiki/iRules.STREAM.ashx